{"id":21029381,"url":"https://github.com/knuckles-team/repository-manager","last_synced_at":"2026-05-11T17:03:17.159Z","repository":{"id":57750004,"uuid":"525153003","full_name":"Knuckles-Team/repository-manager","owner":"Knuckles-Team","description":"Manage your git repositories. Now supports Agentic AI MCP Server Integration!","archived":false,"fork":false,"pushed_at":"2026-02-27T13:15:18.000Z","size":2137,"stargazers_count":2,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-02-27T14:35:46.743Z","etag":null,"topics":["a2a","a2a-server","ag-ui","git","git-cli","mcp-server","python","repository","repository-management"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Knuckles-Team.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2022-08-15T22:09:34.000Z","updated_at":"2026-02-27T13:14:20.000Z","dependencies_parsed_at":"2026-02-18T06:02:06.722Z","dependency_job_id":null,"html_url":"https://github.com/Knuckles-Team/repository-manager","commit_stats":{"total_commits":20,"total_committers":2,"mean_commits":10.0,"dds":0.25,"last_synced_commit":"65137cda886a5f79e8e17849e37e1502faea3828"},"previous_names":[],"tags_count":100,"template":false,"template_full_name":null,"purl":"pkg:github/Knuckles-Team/repository-manager","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Knuckles-Team%2Frepository-manager","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Knuckles-Team%2Frepository-manager/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Knuckles-Team%2Frepository-manager/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Knuckles-Team%2Frepository-manager/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Knuckles-Team","download_url":"https://codeload.github.com/Knuckles-Team/repository-manager/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Knuckles-Team%2Frepository-manager/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29995910,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-02T01:47:34.672Z","status":"online","status_checked_at":"2026-03-02T02:00:07.342Z","response_time":60,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["a2a","a2a-server","ag-ui","git","git-cli","mcp-server","python","repository","repository-management"],"created_at":"2024-11-19T12:12:06.069Z","updated_at":"2026-05-11T17:03:17.148Z","avatar_url":"https://github.com/Knuckles-Team.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Repository Manager - A2A | AG-UI | MCP\n\n![PyPI - Version](https://img.shields.io/pypi/v/repository-manager)\n![MCP Server](https://badge.mcpx.dev?type=server 'MCP Server')\n![PyPI - Downloads](https://img.shields.io/pypi/dd/repository-manager)\n![GitHub Repo stars](https://img.shields.io/github/stars/Knuckles-Team/repository-manager)\n![GitHub forks](https://img.shields.io/github/forks/Knuckles-Team/repository-manager)\n![GitHub contributors](https://img.shields.io/github/contributors/Knuckles-Team/repository-manager)\n![PyPI - License](https://img.shields.io/pypi/l/repository-manager)\n![GitHub](https://img.shields.io/github/license/Knuckles-Team/repository-manager)\n\n![GitHub last commit (by committer)](https://img.shields.io/github/last-commit/Knuckles-Team/repository-manager)\n![GitHub pull requests](https://img.shields.io/github/issues-pr/Knuckles-Team/repository-manager)\n![GitHub closed pull requests](https://img.shields.io/github/issues-pr-closed/Knuckles-Team/repository-manager)\n![GitHub issues](https://img.shields.io/github/issues/Knuckles-Team/repository-manager)\n\n![GitHub top language](https://img.shields.io/github/languages/top/Knuckles-Team/repository-manager)\n![GitHub language count](https://img.shields.io/github/languages/count/Knuckles-Team/repository-manager)\n![GitHub repo size](https://img.shields.io/github/repo-size/Knuckles-Team/repository-manager)\n![GitHub repo file count (file type)](https://img.shields.io/github/directory-file-count/Knuckles-Team/repository-manager)\n![PyPI - Wheel](https://img.shields.io/pypi/wheel/repository-manager)\n![PyPI - Implementation](https://img.shields.io/pypi/implementation/repository-manager)\n\n*Version: 1.14.0*\n\n## Overview\n\n- **Pydantic Graph Architecture**: 19 specialized domain nodes (Git, File, Workspace, and 15+ integrated engineering skills) for intelligent, granular task routing.\n- **Declarative Workspace**: Manage your entire ecosystem via `workspace.yml`, validated by strict Pydantic V2 models.\n- **Idempotent Synchronization**: One-click setup that intelligently clones missing repositories and pulls existing ones into their correct hierarchical paths.\n- **Workspace Visualization**:\n    - **ASCII Tree**: Generate beautiful folder structures directly in the CLI or via MCP.\n    - **Mermaid Diagrams**: Export your workspace model as a visual graph for documentation.\n- **Integrated Skills**: Native support for `agent-builder`, `mcp-builder`, `web-search`, and more, coupled with expert documentation for `FastMCP`, `Pydantic AI`, and `Docker`.\n- **Hybrid Graph Intelligence**: A 10-phase topological pipeline that unifies NetworkX in-memory analysis with LadybugDB Cypher persistence for cross-repository symbol mapping.\n\n## 🧠 Graph Intelligence\n\nThe Repository Manager implements a sophisticated 10-phase pipeline to map and analyze your workspace. This system combines **NetworkX** (for topological algorithms) and **LadybugDB** (for persistent Cypher queries and hybrid search).\n\n### The 10-Phase Intelligence Pipeline\n\n| Phase | Name | Purpose |\n| :--- | :--- | :--- |\n| **1** | **Scan** | Performs the initial directory walk, respecting `.gitignore`, to identify all source code files. |\n| **2** | **Parse** | AST parsing (tree-sitter) to extract high-level symbols (Classes, Functions) and raw import statements. |\n| **3** | **Resolve** | Resolves raw import strings into actual graph edges between `File` and `Symbol` nodes (handling absolute and relative paths). |\n| **4** | **MRO** | Calculates Method Resolution Order and inheritance hierarchies across the entire workspace. |\n| **5** | **Reference** | Builds the call graph by identifying where specific symbols are referenced or invoked. |\n| **6** | **Communities** | Clusters nodes into tightly-coupled modules using topological algorithms like Leiden or Louvain. |\n| **7** | **Centrality** | Runs PageRank/Betweenness analysis to identify critical path \"God Objects\" and high-traffic modules. |\n| **8** | **Project** | Maps file groups to logical project/repository nodes based on manifest files (`pyproject.toml`, `package.json`). |\n| **9** | **Embedding** | Generates semantic vector embeddings for code snippets and documentation to enable high-fidelity vector search. |\n| **10** | **Sync** | Finalizes the build by projecting the in-memory NetworkX graph into the persistent LadybugDB Cypher store. |\n\n1. **Nodes**: Specialized agents for high-context domains (e.g., `GitOpsNode`, `KnowledgeNode`).\n2. **Router**: Automatically directs intent based on tool tags (`git_operations`, `workspace_management`, etc.).\n3. **Engine**: The core `WorkspaceManager` processes the `workspace.yml` model to maintain state.\n\n## 🛠️ Usage\n\n### Workspace Configuration (`workspace.yml`)\nDefine your world in a single file:\n\n```yaml\nname: \"My Workspace\"\npath: \"./workspace\"\nrepositories:\n  - url: \"https://github.com/org/repo-core.git\"\nsubdirectories:\n  agents:\n    repositories:\n      - url: \"https://github.com/org/agent-1.git\"\nmaintenance:\n  phases:\n    - name: \"Phase 1: Core\"\n      phase: 1\n      project: \"repo-core\"\n```\n\n## MCP\n\nAI Prompt:\n```text\nSetup my workspace using the workspace.yml configuration. Also, install and validate all projects in the workspace.\n```\n\nAI Response:\n```text\nWorkspace setup complete: Missing repositories have been cloned and existing ones updated.\nBulk operations finished: All projects installed and validated (agent/mcp) across the workspace.\n```\n\nThis repository is actively maintained - Contributions are welcome!\n\n## A2A Agent\n\n### Architecture:\n\n```mermaid\n---\nconfig:\n  layout: dagre\n---\nflowchart TB\n subgraph subGraph0[\"Agent Capabilities\"]\n        C[\"Agent\"]\n        B[\"A2A Server - Uvicorn/FastAPI\"]\n        D[\"MCP Tools\"]\n        F[\"Agent Skills\"]\n  end\n    C --\u003e D \u0026 F\n    A[\"User Query\"] --\u003e B\n    B --\u003e C\n    D --\u003e E[\"Platform API\"]\n\n     C:::agent\n     B:::server\n     A:::server\n    classDef server fill:#f9f,stroke:#333\n    classDef agent fill:#bbf,stroke:#333,stroke-width:2px\n    style B stroke:#000000,fill:#FFD600\n    style D stroke:#000000,fill:#BBDEFB\n    style F fill:#BBDEFB\n    style A fill:#C8E6C9\n    style subGraph0 fill:#FFF9C4\n```\n\n### Component Interaction Diagram\n\n```mermaid\nsequenceDiagram\n    participant User\n    participant Server as A2A Server\n    participant Agent as Agent\n    participant Skill as Agent Skills\n    participant MCP as MCP Tools\n\n    User-\u003e\u003eServer: Send Query\n    Server-\u003e\u003eAgent: Invoke Agent\n    Agent-\u003e\u003eSkill: Analyze Skills Available\n    Skill-\u003e\u003eAgent: Provide Guidance on Next Steps\n    Agent-\u003e\u003eMCP: Invoke Tool\n    MCP--\u003e\u003eAgent: Tool Response Returned\n    Agent--\u003e\u003eAgent: Return Results Summarized\n    Agent--\u003e\u003eServer: Final Response\n    Server--\u003e\u003eUser: Output\n```\n\n## Usage\n\n### CLI\n\n| Short Flag | Long Flag        | Description                                  |\n|------------|------------------|----------------------------------------------|\n| -h         | --help           | See Usage                                    |\n| -b         | --default-branch | Checkout default branch                      |\n| -c         | --clone          | Clone projects specified in workspace file   |\n| -p         | --pull           | Pull all projects in workspace               |\n| -w         | --workspace      | Specify the workspace root directory         |\n| -f         | --file           | Specify the workspace YAML file (Default)    |\n| -r         | --repositories   | Comma separated Git URLs (Override)          |\n| -t         | --threads        | Number of parallel threads (Default: 12)     |\n| -m         | --maintain       | Run phased maintenance workflow              |\n|            | --pre-commit     | Run parallel pre-commit checks               |\n|            | --bump           | Bulk version bump (patch, minor, major)      |\n|            | --phase          | Start maintenance at Phase N (1-5)           |\n|            | --dry-run        | Preview changes without applying them        |\n|            | --skip-pre-commit| Skip pre-commit phase in maintenance         |\n|            | --install        | Bulk install all Python projects       |\n|            | --build          | Bulk build all Python projects         |\n|            | --validate       | Bulk validate all agent/MCP servers    |\n|            | --type           | Validation filter: agent, mcp, or all        |\n|            | --tree           | Generate ASCII workspace tree          |\n|            | --mermaid        | Generate Mermaid workspace diagram     |\n|            | --setup          | Sync workspace from YAML config        |\n|            | --graph-query    | Query Hybrid Graph (semantic, structural, or hybrid) |\n|            | --graph-mode     | Graph query mode (semantic, structural, or hybrid)       |\n|            | --graph-path     | Find path between two symbols          |\n|            | --graph-status   | Show current graph metrics             |\n|            | --graph-reset    | Purge graph database                   |\n|            | --graph-impact   | Calculate multi-repo impact            |\n\n```bash\nrepository-manager \\\n    --clone  \\\n    --pull  \\\n    --workspace '/home/user/Downloads'  \\\n    --file '/home/user/Downloads/repositories.txt'  \\\n    --repositories 'https://github.com/Knucklessg1/media-downloader,https://github.com/Knucklessg1/genius-bot' \\\n    --threads 8\n```\n\n### MCP CLI\n\n| Short Flag | Long Flag                          | Description                                                                 |\n|------------|------------------------------------|-----------------------------------------------------------------------------|\n| -h         | --help                             | Display help information                                                    |\n| -t         | --transport                        | Transport method: 'stdio', 'http', or 'sse' [legacy] (default: stdio)       |\n| -s         | --host                             | Host address for HTTP transport (default: 0.0.0.0)                          |\n| -p         | --port                             | Port number for HTTP transport (default: 8000)                              |\n|            | --auth-type                        | Authentication type: 'none', 'static', 'jwt', 'oauth-proxy', 'oidc-proxy', 'remote-oauth' (default: none) |\n|            | --token-jwks-uri                   | JWKS URI for JWT verification                                              |\n|            | --token-issuer                     | Issuer for JWT verification                                                |\n|            | --token-audience                   | Audience for JWT verification                                              |\n|            | --oauth-upstream-auth-endpoint     | Upstream authorization endpoint for OAuth Proxy                             |\n|            | --oauth-upstream-token-endpoint    | Upstream token endpoint for OAuth Proxy                                    |\n|            | --oauth-upstream-client-id         | Upstream client ID for OAuth Proxy                                         |\n|            | --oauth-upstream-client-secret     | Upstream client secret for OAuth Proxy                                     |\n|            | --oauth-base-url                   | Base URL for OAuth Proxy                                                   |\n|            | --oidc-config-url                  | OIDC configuration URL                                                     |\n|            | --oidc-client-id                   | OIDC client ID                                                             |\n|            | --oidc-client-secret               | OIDC client secret                                                         |\n|            | --oidc-base-url                    | Base URL for OIDC Proxy                                                    |\n|            | --remote-auth-servers              | Comma-separated list of authorization servers for Remote OAuth             |\n|            | --remote-base-url                  | Base URL for Remote OAuth                                                  |\n|            | --allowed-client-redirect-uris     | Comma-separated list of allowed client redirect URIs                       |\n|            | --eunomia-type                     | Eunomia authorization type: 'none', 'embedded', 'remote' (default: none)   |\n|            | --eunomia-policy-file              | Policy file for embedded Eunomia (default: mcp_policies.json)              |\n|            | --eunomia-remote-url               | URL for remote Eunomia server                                              |\n\n\n### A2A CLI\n\n| Short Flag | Long Flag         | Description                                                            |\n|------------|-------------------|------------------------------------------------------------------------|\n| -h         | --help            | Display help information                                               |\n|            | --host            | Host to bind the server to (default: 0.0.0.0)                          |\n|            | --port            | Port to bind the server to (default: 9000)                             |\n|            | --reload          | Enable auto-reload                                                     |\n|            | --provider        | LLM Provider: 'openai', 'anthropic', 'google', 'huggingface'           |\n|            | --model-id        | LLM Model ID (default: nvidia/nemotron-3-super)                                       |\n|            | --base-url        | LLM Base URL (for OpenAI compatible providers)                         |\n|            | --api-key         | LLM API Key                                                            |\n|            | --python-sandbox-enable | Enable Python Sandbox MCP configuration                                  |\n|            | --workspace            | Workspace to scan for git projects (default: current directory)       |\n\n\nThe Repository Manager natively integrates **LadybugDB**, **NetworkX**, and semantic embeddings into a single `GraphEngine` architecture. This provides deep structural and multimodal intelligence across your Workspace. The system defaults to **Hybrid Search**, which merges semantic concepts (vector) with structural relationships (Cypher) for maximum precision.\n\n```mermaid\nflowchart TD\n    subgraph Data Sources\n        YAML[workspace.yml]\n        Files[Code / Docs / Images]\n    end\n\n    subgraph WorkspaceManager\n        Parse[Parse YAML \u0026 Groups]\n    end\n\n    subgraph GraphEngine\n        direction TB\n        subgraph GraphConstruction [In-Memory Construction]\n            NX[(NetworkX)]\n            AST[Tree-sitter AST Pass]\n            Semantic[LLM Rationale Pass]\n            Leiden[Leiden Clustering]\n        end\n\n        subgraph GraphPersistence [Persistence \u0026 Storage]\n            LB[(LadybugDB .lbug)]\n            Sync[Sync / MERGE]\n            Vector[Vector Indexes]\n        end\n\n        AST --\u003e NX\n        Semantic --\u003e NX\n        NX --\u003e Leiden\n        NX \u003c--\u003e|\"get_as_networkx()\"| LB\n        NX --\u003e Sync\n        Sync --\u003e LB\n        LB --\u003e Vector\n    end\n\n    subgraph MCP Tools\n        direction LR\n        subgraph GraphIntelligence [Graph Intelligence]\n            Impact[graph_impact]\n            Search[graph_query]\n            Build[graph_build]\n            Path[graph_path]\n            Status[graph_status]\n            Reset[graph_reset]\n        end\n    end\n\n    YAML --\u003e Parse\n    Files --\u003e AST\n    Files --\u003e Semantic\n    Parse --\u003e Build\n    Build --\u003e GraphConstruction\n    Impact --\u003e LB\n    Search --\u003e LB\n    Search --\u003e Vector\n    Path --\u003e NX\n    Status --\u003e NX\n    Reset --\u003e LB\n```\n\n```bash\nrepository-manager --maintain --workspace /path/to/my/projects\n```\n\nThis will:\n1. Parse `workspace.yml` for all repository definitions and dependency groups.\n2. Incrementally parse changed files constructing a NetworkX Graph and sync to LadybugDB.\n3. Expose tools natively to your AI Agent (e.g. `graph_impact`, `graph_query`).\n\n### Python Sandbox Integration\n\nThe Agent can execute Python code in a secure Deno sandbox using `mcp-run-python`.\n\n```bash\nrepository_manager_a2a --python-sandbox-enable\n```\n\nThis will:\n1.  Configure `mcp_config.json` to include the `python-sandbox` server.\n2.  Enable the `Python Sandbox` skill, allowing the agent to run scripts for calculation, testing, or logic verification.\n\n### Default Workspace Model\n\nThe manager automatically discovers `workspace.yml` in the current directory or via the `WORKSPACE_YML` environment variable. This file serves as the strict single source of truth for the entire environment hierarchy, encompassing repositories, subdirectories, and maintenance policies.\n\n### Maintenance Workflows\n\n`repository-manager` supports specialized maintenance workflows for managing interdependent package ecosystems.\n\n#### Parallel Pre-commits\nRun `pre-commit` checks across all repositories in parallel. This is significantly faster than sequential runs and simplifies fleet-wide health checks.\n\n```bash\nrepository-manager --pre-commit\n```\n\n#### Phased Bumping\nWhen packages depend on each other, they often need to be bumped in a specific sequence. The `--maintain` flag implements this 5-stage process:\n\n1.  **Skills**: Update core skill packages.\n2.  **Graphs**: Update AI graph/template repositories.\n3.  **UI**: Update frontend components.\n4.  **Utilities**: Update the central utility library (`agent-utilities`) and propagate skill/graph versions.\n5.  **Fleet**: Propagate the new utility version to all other packages and bump their versions.\n\n```bash\n# Full maintenance run (Bump patch -\u003e Pre-commit -\u003e Validate)\nrepository-manager --maintain --bump patch\n\n# Dry-run a maintenance bump without committing changes\nrepository-manager --maintain --bump patch --dry-run\n\n# Run only the first phase (bumping) and stop\nrepository-manager --maintain --bump patch --phase 1 --single-phase\n\n# Skip verify phase (pre-commit) if already done\nrepository-manager --maintain --bump patch --skip-pre-commit\n\n# Resume from a specific phase\nrepository-manager --maintain --phase 4\n```\n\n### Graph Intelligence CLI Examples\n\nThe `GraphEngine` can be queried directly via the CLI to gain insights into your workspace architecture.\n\n| Feature | Command | Description |\n|---------|---------|-------------|\n| **Status** | `repository-manager --graph-status` | Show node/edge counts and database connectivity. |\n| **Reset** | `repository-manager --graph-reset` | Purge the graph and force a full rebuild on next maintenance. |\n| **Query** | `repository-manager --graph-query \"GitResult\" --graph-mode semantic` | Search for concepts or symbols across the fleet. |\n| **Impact**| `repository-manager --graph-impact \"WorkspaceConfig\"` | Identify all downstream nodes affected by a symbol change. |\n| **Path**  | `repository-manager --graph-path \"GitResult\" \"mcp_server\"` | Trace the shortest dependency path between two symbols. |\n| **Cypher**| `repository-manager --graph-query \"MATCH (n) RETURN n LIMIT 5\" --graph-mode structural` | Execute raw Cypher queries on LadybugDB. |\n\n#### Example: Running an Impact Analysis\n```bash\nrepository-manager --graph-impact \"GitResult\" --file workspace.yml\n```\nThis will return a JSON list of all nodes across all repositories that are topologically dependent on the `GitResult` model.\n\n### Using as an MCP Server\n\nThe MCP Server can be run in two modes: `stdio` (for local testing) or `http` (for networked access). To start the server, use the following commands:\n\n#### Run in stdio mode (default):\n```bash\nrepository-manager-mcp --transport \"stdio\"\n```\n\n#### Run in HTTP mode:\n```bash\nrepository-manager-mcp --transport \"http\"  --host \"0.0.0.0\"  --port \"8000\"\n```\n\n### Use in Python\n\n```python\nfrom repository_manager.repository_manager import Git\n\ngitlab = Git()\n\ngitlab.set_workspace(\"\u003cworkspace\u003e\")\n\ngitlab.set_threads(threads=8)\n\ngitlab.set_git_projects(\"\u003cprojects\u003e\")\n\ngitlab.set_default_branch(set_to_default_branch=True)\n\ngitlab.clone_projects_in_parallel()\n\ngitlab.pull_projects_in_parallel()\n```\n\n\n### Deploy MCP Server as a Service\n\nThe ServiceNow MCP server can be deployed using Docker, with configurable authentication, middleware, and Eunomia authorization.\n\n#### Using Docker Run\n\n```bash\ndocker pull knucklessg1/repository-manager:latest\n\ndocker run -d \\\n  --name repository-manager-mcp \\\n  -p 8004:8004 \\\n  -e HOST=0.0.0.0 \\\n  -e PORT=8004 \\\n  -e TRANSPORT=http \\\n  -e AUTH_TYPE=none \\\n  -e EUNOMIA_TYPE=none \\\n  -v development:/root/Development \\\n  knucklessg1/repository-manager:latest\n```\n\nFor advanced authentication (e.g., JWT, OAuth Proxy, OIDC Proxy, Remote OAuth) or Eunomia, add the relevant environment variables:\n\n```bash\ndocker run -d \\\n  --name repository-manager-mcp \\\n  -p 8004:8004 \\\n  -e HOST=0.0.0.0 \\\n  -e PORT=8004 \\\n  -e TRANSPORT=http \\\n  -e AUTH_TYPE=oidc-proxy \\\n  -e OIDC_CONFIG_URL=https://provider.com/.well-known/openid-configuration \\\n  -e OIDC_CLIENT_ID=your-client-id \\\n  -e OIDC_CLIENT_SECRET=your-client-secret \\\n  -e OIDC_BASE_URL=https://your-server.com \\\n  -e ALLOWED_CLIENT_REDIRECT_URIS=http://localhost:*,https://*.example.com/* \\\n  -e EUNOMIA_TYPE=embedded \\\n  -e EUNOMIA_POLICY_FILE=/app/mcp_policies.json \\\n  -v development:/root/Development \\\n  knucklessg1/repository-manager:latest\n```\n\n#### Using Docker Compose\n\nCreate a `docker-compose.yml` file:\n\n```yaml\nservices:\n  repository-manager-mcp:\n    image: knucklessg1/repository-manager:latest\n    environment:\n      - HOST=0.0.0.0\n      - PORT=8004\n      - TRANSPORT=http\n      - AUTH_TYPE=none\n      - EUNOMIA_TYPE=none\n    volumes:\n      - development:/root/Development\n    ports:\n      - 8004:8004\n```\n\nFor advanced setups with authentication and Eunomia:\n\n```yaml\nservices:\n  repository-manager-mcp:\n    image: knucklessg1/repository-manager:latest\n    environment:\n      - HOST=0.0.0.0\n      - PORT=8004\n      - TRANSPORT=http\n      - AUTH_TYPE=oidc-proxy\n      - OIDC_CONFIG_URL=https://provider.com/.well-known/openid-configuration\n      - OIDC_CLIENT_ID=your-client-id\n      - OIDC_CLIENT_SECRET=your-client-secret\n      - OIDC_BASE_URL=https://your-server.com\n      - ALLOWED_CLIENT_REDIRECT_URIS=http://localhost:*,https://*.example.com/*\n      - EUNOMIA_TYPE=embedded\n      - EUNOMIA_POLICY_FILE=/app/mcp_policies.json\n    ports:\n      - 8004:8004\n    volumes:\n      - development:/root/Development\n      - ./mcp_policies.json:/app/mcp_policies.json\n```\n\nRun the service:\n\n```bash\ndocker-compose up -d\n```\n\n#### Configure `mcp.json` for AI Integration\n\n```json\n{\n  \"mcpServers\": {\n    \"repository_manager\": {\n      \"command\": \"uv\",\n      \"args\": [\n        \"run\",\n        \"--with\",\n        \"repository-manager\",\n        \"repository-manager-mcp\"\n      ],\n      \"env\": {\n        \"REPOSITORY_MANAGER_WORKSPACE\": \"/home/user/Development/\",                       // Optional - Can be specified at prompt\n        \"REPOSITORY_MANAGER_THREADS\": \"12\",                                              // Optional - Can be specified at prompt\n        \"REPOSITORY_MANAGER_DEFAULT_BRANCH\": \"True\",                                     // Optional - Can be specified at prompt\n        \"REPOSITORY_MANAGER_PROJECTS_FILE\": \"/home/user/Development/repositories.txt\"    // Optional - Can be specified at prompt\n      },\n      \"timeout\": 300000\n    }\n  }\n}\n\n```\n\n### A2A\n\n#\n#### Endpoints\n- **Web UI**: `http://localhost:8000/` (if enabled)\n- **A2A**: `http://localhost:8000/a2a` (Discovery: `/a2a/.well-known/agent.json`)\n- **AG-UI**: `http://localhost:8000/ag-ui` (POST)\n\n#### A2A CLI\n\n| Short Flag | Long Flag         | Description                                                            |\n|------------|-------------------|------------------------------------------------------------------------|\n| -h         | --help            | Display help information                                               |\n|            | --host            | Host to bind the server to (default: 0.0.0.0)                          |\n|            | --port            | Port to bind the server to (default: 9000)                             |\n|            | --reload          | Enable auto-reload                                                     |\n|            | --provider        | LLM Provider: 'openai', 'anthropic', 'google', 'huggingface'           |\n|            | --model-id        | LLM Model ID (default: nvidia/nemotron-3-super)                                       |\n|            | --base-url        | LLM Base URL (for OpenAI compatible providers)                         |\n|            | --api-key         | LLM API Key                                                            |\n|            | --api-key         | LLM API Key                                                            |\n| --mcp-url         | MCP Server URL (default: http://localhost:8000/mcp)                    |\n| --web             | Enable Pydantic AI Web UI                                              | False (Env: ENABLE_WEB_UI) |\n\n\n## Install Python Package\n\n```bash\npip install repository-manager\n```\n\nor\n\n```bash\nuv pip install --upgrade repository-manager\n```\n\n\n## Repository Owners\n\n\u003cimg width=\"100%\" height=\"180em\" src=\"https://github-readme-stats.vercel.app/api?username=Knucklessg1\u0026show_icons=true\u0026hide_border=true\u0026\u0026count_private=true\u0026include_all_commits=true\" /\u003e\n\n![GitHub followers](https://img.shields.io/github/followers/Knucklessg1)\n![GitHub User's stars](https://img.shields.io/github/stars/Knucklessg1)\n\n\n## MCP Configuration Examples\n\n### 1. Standard IO (stdio) Deployment\n\n```json\n{\n  \"mcpServers\": {\n    \"repository-manager\": {\n      \"command\": \"uv\",\n      \"args\": [\n        \"run\",\n        \"repository-manager-mcp\"\n      ],\n      \"env\": {\n        \"AGENT_DESCRIPTION\": \"\u003cYOUR_AGENT_DESCRIPTION\u003e\",\n        \"AGENT_SYSTEM_PROMPT\": \"\u003cYOUR_AGENT_SYSTEM_PROMPT\u003e\",\n        \"DEFAULT_AGENT_NAME\": \"\u003cYOUR_DEFAULT_AGENT_NAME\u003e\",\n        \"GIT_OPERATIONSTOOL\": \"True\",\n        \"GRAPH_INTELLIGENCETOOL\": \"True\",\n        \"LLM_API_KEY\": \"\u003cYOUR_LLM_API_KEY\u003e\",\n        \"LLM_BASE_URL\": \"\u003cYOUR_LLM_BASE_URL\u003e\",\n        \"MCP_URL\": \"\u003cYOUR_MCP_URL\u003e\",\n        \"MISCTOOL\": \"True\",\n        \"MODEL_ID\": \"\u003cYOUR_MODEL_ID\u003e\",\n        \"REPOSITORY_MANAGER_DEFAULT_BRANCH\": \"\u003cYOUR_REPOSITORY_MANAGER_DEFAULT_BRANCH\u003e\",\n        \"REPOSITORY_MANAGER_THREADS\": \"\u003cYOUR_REPOSITORY_MANAGER_THREADS\u003e\",\n        \"REPOSITORY_MANAGER_WORKSPACE\": \"\u003cYOUR_REPOSITORY_MANAGER_WORKSPACE\u003e\",\n        \"VISUALIZATIONTOOL\": \"True\",\n        \"WORKSPACE_MANAGEMENTTOOL\": \"True\",\n        \"WORKSPACE_YML\": \"\u003cYOUR_WORKSPACE_YML\u003e\"\n      }\n    }\n  }\n}\n```\n\n### 2. Streamable HTTP (SSE) Deployment\n\n```json\n{\n  \"mcpServers\": {\n    \"repository-manager\": {\n      \"command\": \"uv\",\n      \"args\": [\n        \"run\",\n        \"repository-manager-mcp\",\n        \"--transport\",\n        \"http\",\n        \"--host\",\n        \"0.0.0.0\",\n        \"--port\",\n        \"8000\"\n      ],\n      \"env\": {\n        \"AGENT_DESCRIPTION\": \"\u003cYOUR_AGENT_DESCRIPTION\u003e\",\n        \"AGENT_SYSTEM_PROMPT\": \"\u003cYOUR_AGENT_SYSTEM_PROMPT\u003e\",\n        \"DEFAULT_AGENT_NAME\": \"\u003cYOUR_DEFAULT_AGENT_NAME\u003e\",\n        \"GIT_OPERATIONSTOOL\": \"True\",\n        \"GRAPH_INTELLIGENCETOOL\": \"True\",\n        \"LLM_API_KEY\": \"\u003cYOUR_LLM_API_KEY\u003e\",\n        \"LLM_BASE_URL\": \"\u003cYOUR_LLM_BASE_URL\u003e\",\n        \"MCP_URL\": \"\u003cYOUR_MCP_URL\u003e\",\n        \"MISCTOOL\": \"True\",\n        \"MODEL_ID\": \"\u003cYOUR_MODEL_ID\u003e\",\n        \"REPOSITORY_MANAGER_DEFAULT_BRANCH\": \"\u003cYOUR_REPOSITORY_MANAGER_DEFAULT_BRANCH\u003e\",\n        \"REPOSITORY_MANAGER_THREADS\": \"\u003cYOUR_REPOSITORY_MANAGER_THREADS\u003e\",\n        \"REPOSITORY_MANAGER_WORKSPACE\": \"\u003cYOUR_REPOSITORY_MANAGER_WORKSPACE\u003e\",\n        \"VISUALIZATIONTOOL\": \"True\",\n        \"WORKSPACE_MANAGEMENTTOOL\": \"True\",\n        \"WORKSPACE_YML\": \"\u003cYOUR_WORKSPACE_YML\u003e\"\n      }\n    }\n  }\n}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fknuckles-team%2Frepository-manager","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fknuckles-team%2Frepository-manager","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fknuckles-team%2Frepository-manager/lists"}