Monorepo Structure & Organization
Relevant source files
The following files were used as context for generating this wiki page:
The arclio-mcp-tooling repository is a unified monorepo designed to house a collection of Model Context Protocol (MCP) packages. These packages enable AI models to interact securely with external services—such as Google Workspace, AWS S3, and Weaviate—by providing a standardized interface for tool discovery and execution. The monorepo architecture ensures consistent development standards, shared testing infrastructure, and centralized management of dependencies across various integration services.
Sources: README.md:12-22, pyproject.toml:60-65
Core Architecture & Directory Layout
The repository utilizes a standardized structure to manage multiple independent but related packages. The root directory contains workspace configuration and development orchestration files, while individual implementations reside within the packages/ directory.
Directory Structure Overview
arclio-mcp-tooling/
├── packages/ # Individual package implementations
│ ├── aws-s3-mcp/ # AWS S3 integration
│ ├── google-workspace-mcp/ # Google Workspace integration
│ ├── markdowndeck/ # Markdown-to-Slides engine
│ └── weaviate-mcp/ # Weaviate vector database integration
├── tests/ # Centralized testing infrastructure
├── Makefile # Root development tasks and orchestration
├── pyproject.toml # Workspace and dev dependency configuration
└── README.md # Project-level documentation
Sources: README.md:24-35, pyproject.toml:60-65
Workspace Management
The project uses uv as its primary package and workspace manager. The root pyproject.toml defines the workspace members and allows for centralized dependency resolution while maintaining isolated environments for each package.
Package Interdependencies
While packages are isolated for publishing, the monorepo structure allows for internal dependencies. For example, google-workspace-mcp utilizes markdowndeck as a core library to provide slide generation capabilities to AI models.
| Package | Purpose | Key Dependencies |
|---|---|---|
google-workspace-mcp | MCP server for Google APIs | markdowndeck, google-api-python-client, mcp |
markdowndeck | Logic for MD-to-Google Slides | markdown-it-py, google-auth, Pillow |
aws-s3-mcp | MCP server for AWS Storage | aioboto3 |
weaviate-mcp | MCP server for Vector DB | weaviate-client |
Sources: packages/google-workspace-mcp/pyproject.toml:10-25, packages/markdowndeck/pyproject.toml:22-30, packages/markdowndeck/README.md:144-149
Development Orchestration
The project provides a Makefile and specific pyproject.toml tool configurations to standardize development workflows across the monorepo. This includes installation, testing, and linting tasks.
Root Command Patterns
- Environment Setup:
make setup-devinstalls the base requirements anduv. - Installation:
make install-allinstalls all packages in editable mode within the workspace. - Testing: Supports running all tests (
make test) or package-specific tests (make test google-workspace-mcp). - Quality Control: Standardized
make lint,make fix, andmake formatacross all packages.
Sources: README.md:44-55, README.md:68-81, pyproject.toml:75-90
Test Infrastructure Organization
Tests are organized by package and categorized by their scope within the tests/ directory:
- Unit Tests: Isolated, fast tests (marker:
unit). - Integration Tests: Component interaction tests (marker:
integration). - End-to-End Tests: Full pipeline validation (marker:
end_to_end).
Sources: pyproject.toml:34-45
Build and Release Pipeline
The monorepo uses hatchling as the build backend for individual packages. Each package maintains its own versioning and metadata in its respective pyproject.toml, but publishing tasks can be orchestrated from the root.
Summary
The Arclio MCP Tooling monorepo provides a structured, enterprise-grade environment for developing AI integration tools. By leveraging uv workspaces and a standardized package layout, it balances the need for individual package isolation with the benefits of centralized development, testing, and dependency management. This architecture specifically supports the "Blank Canvas First" approach for MCP servers, ensuring that complex integrations like Google Slides or AWS S3 are exposed as simple, discoverable tools for Large Language Models.
Sources: README.md:12-20, packages/markdowndeck/README.md:15-30