Claude Code MCP
Orchestrates multiple Claude Code agents across iTerm2 sessions, providing centralized management and inter-agent communication.
Claude Code MCP - Agent Orchestration Platform
Overview
A sophisticated FastMCP Python server that orchestrates multiple Claude Code agents across iTerm2 sessions, providing centralized management and inter-agent communication through task-based workflows.
Architecture
Agent Orchestration Platform with:
- iTerm2 Tab-Based Sessions: No window complexity, pure tab management
- Persistent Agent State: Survives iTerm restarts with state recovery
- Codebase-Linked Sessions: Sessions tied to specific root filepaths
- Maximum Security Isolation: Process-level separation between agents
- Task-Based Inter-Agent Communication: ADDER+ workflow coordination
- System Prompt Injection: Automatic Agent_# naming and prompt prepending
Core MCP Tools
| Tool | Purpose | Security Level |
|---|---|---|
create_agent | Creates new Claude Code agent instance | HIGH |
delete_agent | Removes agent from system | HIGH |
create_session | Creates session tied to root filepath | MEDIUM |
get_session_status | Returns status of all agents in session | LOW |
delete_session | Removes entire session and all agents | HIGH |
send_message_to_agent | Sends message with ADDER+ prepending | MEDIUM |
clear_agent_conversation | Closes current iTerm tab for agent | MEDIUM |
start_new_agent_conversation | Opens new iTerm tab for agent | MEDIUM |
ADDER+ Workflow Integration
Each agent operates with the comprehensive ADDER+ (Advanced Development, Documentation & Error Resolution) protocol, enabling:
- Autonomous Task Management: TODO.md-driven execution with real-time progress tracking
- Advanced Programming Synthesis: Design by Contract + defensive programming + type-driven development + property-based testing + functional programming patterns
- Systematic Error Resolution: Root Cause Analysis with automatic task generation
- Inter-Agent Coordination: Task-based communication through documentation files
Security Model
- Process Isolation: Each Claude Code agent runs in separate process
- Session Boundaries: Agents cannot access other session codebases
- State Encryption: Persistent agent state encrypted at rest
- Audit Logging: All agent interactions logged for security analysis
- Permission Model: Role-based access control for agent operations
Quick Start
# Install dependencies
uv sync
# Start the MCP server
python src/main.py
Claude Desktop Configuration
To use this Agent Orchestration Platform with Claude Desktop, you need to configure it as an MCP server in Claude's configuration file.
Configuration File Location
macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
Windows:
%APPDATA%/Claude/claude_desktop_config.json
Configuration Steps
-
Open Configuration File: Navigate to the configuration file location above. Create the file if it doesn't exist.
-
Add Server Configuration: Add the following configuration to your
claude_desktop_config.json:
Option 1: Using UV (Recommended)
{
"mcpServers": {
"claude-code-mcp": {
"command": "uv",
"args": [
"--directory",
"/ABSOLUTE/PATH/TO/Claude_Code_MCP",
"run",
"python",
"src/main.py"
],
"env": {
"PYTHONPATH": "/ABSOLUTE/PATH/TO/Claude_Code_MCP/src"
}
}
}
}
Option 2: Using Python Directly
{
"mcpServers": {
"claude-code-mcp": {
"command": "python",
"args": [
"/ABSOLUTE/PATH/TO/Claude_Code_MCP/src/main.py"
],
"env": {
"PYTHONPATH": "/ABSOLUTE/PATH/TO/Claude_Code_MCP/src"
}
}
}
}
Option 3: Using Virtual Environment
{
"mcpServers": {
"claude-code-mcp": {
"command": "/ABSOLUTE/PATH/TO/Claude_Code_MCP/.venv/bin/python",
"args": [
"/ABSOLUTE/PATH/TO/Claude_Code_MCP/src/main.py"
],
"env": {
"PYTHONPATH": "/ABSOLUTE/PATH/TO/Claude_Code_MCP/src"
}
}
}
}
Configuration Notes
- Replace
/ABSOLUTE/PATH/TO/Claude_Code_MCPwith the actual absolute path to your project directory - On Windows, use backslashes in paths:
C:\\path\ o\\Claude_Code_MCP - Server Name: You can change
"claude-code-mcp"to any name you prefer - Virtual Environment: If using a virtual environment, adjust the Python path accordingly
Advanced Configuration Options
With Custom Security Level
{
"mcpServers": {
"claude-code-mcp": {
"command": "uv",
"args": [
"--directory",
"/ABSOLUTE/PATH/TO/Claude_Code_MCP",
"run",
"python",
"src/main.py",
"--security-level",
"HIGH",
"--max-agents",
"16",
"--max-sessions",
"8"
],
"env": {
"PYTHONPATH": "/ABSOLUTE/PATH/TO/Claude_Code_MCP/src"
}
}
}
}
With Custom Log Directory
{
"mcpServers": {
"claude-code-mcp": {
"command": "uv",
"args": [
"--directory",
"/ABSOLUTE/PATH/TO/Claude_Code_MCP",
"run",
"python",
"src/main.py",
"--log-dir",
"/ABSOLUTE/PATH/TO/Claude_Code_MCP/logs"
],
"env": {
"PYTHONPATH": "/ABSOLUTE/PATH/TO/Claude_Code_MCP/src"
}
}
}
}
Verification Steps
- Save Configuration: Save the
claude_desktop_config.jsonfile - Restart Claude Desktop: Completely quit and restart Claude Desktop
- Check MCP Status: Look for MCP server indicators in the Claude Desktop interface:
- Hammer icon (🔨) indicating available tools
- Connector icon indicating MCP server connection
- Test Functionality: Try using one of the agent orchestration tools
Troubleshooting
Server Not Loading
- Verify all paths are absolute (not relative)
- Check that
uvorpythonis in your system PATH - Ensure the project directory exists and has correct permissions
- Review Claude Desktop logs at:
- macOS:
~/Library/Logs/Claude/mcp*.log - Windows:
%APPDATA%\Claude\logs\mcp*.log
- macOS:
Manual Testing
Test the server manually before configuring Claude Desktop:
# Navigate to project directory
cd /path/to/Claude_Code_MCP
# Test with UV
uv run python src/main.py --help
# Test with Python directly
python src/main.py --help
Common Issues
- Permission Errors: Ensure Claude Desktop has permission to execute the Python interpreter
- Import Errors: Verify
PYTHONPATHis correctly set in the configuration - Port Conflicts: If using HTTP transport, ensure the port (default 8000) is available
Available MCP Tools
Once configured, Claude Desktop will have access to these agent orchestration tools:
create_agent- Create new Claude Code agent instancesdelete_agent- Remove agents from the systemcreate_session- Create sessions tied to specific codebasesget_session_status- Get status of all agents in a sessiondelete_session- Remove entire sessions and all agentssend_message_to_agent- Send messages with ADDER+ protocol integrationclear_agent_conversation- Close current iTerm tab for agentstart_new_agent_conversation- Open new iTerm tab for agent
Development Workflow
- Session Creation: Link sessions to specific codebases
- Agent Spawning: Create specialized agents with custom system prompts
- Task Coordination: Agents communicate through TODO.md and task files
- Status Monitoring: Real-time visibility into agent progress and health
- Session Management: Persistent state with recovery capabilities
Integration Points
- FastMCP Framework: High-performance MCP server implementation
- iTerm2 Python API: Advanced terminal session management
- Claude Code: AI agent process orchestration
- Asyncio Architecture: Event-driven concurrent agent management
This platform enables sophisticated AI development workflows with multiple specialized agents working collaboratively on complex codebases while maintaining strict security isolation and comprehensive audit trails.
관련 서버
Alpha Vantage MCP Server
스폰서Access financial market data: realtime & historical stock, ETF, options, forex, crypto, commodities, fundamentals, technical indicators, & more
Volatility3 MCP Server
Perform advanced memory forensics analysis using Volatility3 via a conversational interface. Requires user-specified memory dump files.
BCMS MCP
Give me a one - two sentence description of the BCMS MCP # MCP The BCMS Model Context Protocol (MCP) integration enables AI assistants like Claude, Cursor, and other MCP-compatible tools to interact directly with your BCMS content. This allows you to create, read, and update content entries, manage media files, and explore your content structure—all through natural language conversations with AI. ## What is MCP? The [Model Context Protocol (MCP)](https://modelcontextprotocol.io/) is an open standard developed by Anthropic that allows AI applications to securely connect to external data sources and tools. With BCMS MCP support, you can leverage AI assistants to: - Query and explore your content structure - Create new content entries with AI-generated content - Update existing entries - Manage your media library - Get intelligent suggestions based on your content model --- ## Getting Started ### Prerequisites 1. A BCMS account with an active instance 2. An MCP key with appropriate permissions 3. An MCP-compatible client (Claude Desktop, Cursor, or any MCP client) ### Step 1: Create an MCP Key 1. Navigate to your BCMS dashboard 2. Go to Settings → MCP 3. Click Create MCP Key 4. Configure the permissions for templates you want the AI to access:GET: Read entries 5. POST: Create entries 6. PUT: Update entries 7. DELETE: Delete entries Note: Right now, MCP only supports creating, reading and updating content. ### Step 2: Configure Your MCP Client You can find full instructions for integrating BCMS with your AI tools right inside BCMS, on the MCP page. But in general, installing BCMS MCP works in a standard way: ``` { "mcpServers": { "bcms": { "url": "https://app.thebcms.com/api/v3/mcp?mcpKey=YOUR_MCP_KEY" } } } ``` ## Available Tools Once connected, your AI assistant will have access to the following tools based on your MCP key permissions: ### Content Discovery #### list_templates_and_entries Lists all templates and their entries that you have access to. This is typically the first tool to call when exploring your BCMS content. Returns: - Template IDs, names, and slugs - Entry IDs with titles and slugs for each language Example prompt: "Show me all the templates and entries in my BCMS" --- ### Entry Management #### list_entries_for_{templateId} Retrieves all entries for a specific template with full content data. A separate tool is generated for each template you have access to. Returns: - Complete entry data including all meta fields - Content in all configured languages - Entry statuses Example prompt: "List all blog posts from my Blog template" --- #### create_entry_for_{templateId} Creates a new entry for a specific template. The input schema is dynamically generated based on your template's field structure. Input: - statuses: Array of status assignments per language - meta: Array of metadata for each language (title, slug, custom fields) - content: Array of content nodes for each language Example prompt: "Create a new blog post titled 'Getting Started with BCMS' with a brief introduction paragraph" --- #### update_entry_for_{templateId} Updates an existing entry for a specific language. Input: - entryId: The ID of the entry to update - lng: Language code (e.g., "en") - status: Optional status ID - meta: Updated metadata - content: Updated content nodes Example prompt: "Update the introduction paragraph of my 'Getting Started' blog post" --- ### Media Management #### list_all_media Lists all media files in your media library. Returns: - Media IDs, names, and types - File metadata (size, dimensions for images) - Parent directory information Example prompt: "Show me all images in my media library" --- #### list_media_dirs Lists the directory structure of your media library. Returns: - Hierarchical directory structure - Directory IDs and names Example prompt: "Show me the folder structure of my media library" --- #### create-media-directory Creates a new directory in your media library. Input: - name: Name of the directory - parentId: Optional parent directory ID (root if not specified) Example prompt: "Create a new folder called 'Blog Images' in my media library" --- #### request-upload-media-url Returns a URL you use to upload a file (for example via POST with multipart form data), which avoids pushing large binaries through the MCP tool payload. You still need a valid file name and MIME type when uploading, as described in the tool response. Availability: Only when the MCP key has Can mutate media enabled. Example prompt: “Give me an upload URL for a new hero image, then tell me how to upload it.” Input: - fileName: Name of the file with extension - fileData: Base64-encoded file data (with data URI prefix) - parentId: Optional parent directory ID Example prompt: "Upload this image to my Blog Images folder" --- ### Linking Tools #### get_entry_pointer_link Generates an internal BCMS link to an entry for use in content. Input: - entryId: The ID of the entry to link to Returns: - Internal link format: entry:{entryId}@*_{templateId}:entry Example prompt: "Get me the internal link for the 'About Us' page entry" --- #### get_media_pointer_link Generates an internal BCMS link to a media item for use in content. Input: - mediaId: The ID of the media item Returns: - Internal link format: media:{mediaId}@*_@*_:entry Example prompt: "Get the link for the hero image so I can use it in my blog post" --- ## Content Structure ### Entry Content Nodes When creating or updating entries, content is structured as an array of nodes. Supported node types include: Type Description paragraph Standard text paragraph heading Heading (h1-h6) bulletList Unordered list orderedList Numbered list listItem List item codeBlock Code block with syntax highlighting blockquote Quote block image Image node widget Custom widget with props ### Example Content Structure ``` { "content": [ { "lng": "en", "nodes": [ { "type": "heading", "attrs": { "level": 1 }, "content": [ { "type": "text", "text": "Welcome to BCMS" } ] }, { "type": "paragraph", "content": [ { "type": "text", "text": "This is your first paragraph." } ] } ] } ] } ``` ## Security & Permissions ### MCP Key Scopes Your MCP key controls what the AI can access: - Template Access: Only templates explicitly granted in the MCP key are visible - Operation Permissions: Each template can have independent GET/POST/PUT/DELETE permissions - Media Access: Media operations are controlled separately ### Best Practices 1. Principle of Least Privilege: Only grant the permissions needed for your use case 2. Separate Keys: Create different MCP keys for different purposes or team members 3. Regular Rotation: Periodically rotate your MCP keys ## Use Cases ### Content Creation Workflows Blog Post Creation "Create a new blog post about the benefits of headless CMS. Include an introduction, three main benefits with explanations, and a conclusion. Use the Blog template." Product Updates "Update the price field for all products in the Electronics category to apply a 10% discount" ### Content Exploration Content Audit "List all blog posts that don't have a featured image set" Translation Status "Show me which entries are missing German translations" ### Media Organization Library Cleanup "Show me all unused images in the media library" Folder Setup "Create folder structure for: Products > Categories > Electronics, Clothing, Home" ## Troubleshooting ### Common Issues #### "MCP key not found" - Verify your MCP key format: keyId.keySecret.instanceId - Ensure the MCP key hasn't been deleted or deactivated - Check that you're using the correct instance #### "MCP key does not have access to template" - Review your MCP key permissions in the dashboard - Ensure the required operation (GET/POST/PUT/DELETE) is enabled for the template #### Session Expired - MCP sessions may timeout after periods of inactivity - Simply start a new conversation to establish a fresh session ### Getting Help - Documentation: [thebcms.com/docs](https://thebcms.com/docs) - Support: [[email protected]](mailto:[email protected]) - Community: [Join BCMS Discord](https://discord.com/invite/SYBY89ccaR) for community support ## Technical Reference ### Endpoint POST https://app.thebcms.com/api/v3/mcp?mcpKey={MCP_KEY} ### Transport BCMS MCP uses the Streamable HTTP transport with session management. Sessions are maintained via the mcp-session-id header. ### Response Format All tools return structured JSON responses conforming to the MCP specification with: - content: Array of content blocks - structuredContent: Typed response data ## Rate Limits MCP requests are subject to the same rate limits as API requests: - Requests are tracked per MCP key - Contact support if you need higher limits for production workloads
TanStack MCP
Official-grade MCP server for the TanStack ecosystem. Real-time docs, search, and scaffolding.
MCP Gateway
A reverse proxy gateway for managing and accessing multiple MCP servers through a single entry point, deployable via Docker.
Apidog tests MCP
Adds possibility to work with testing management via MCP
MCP-Slicer
Integrates 3D Slicer with model clients via MCP, allowing natural language control for medical image processing and scene manipulation.
Dan MCP
An example MCP server deployed on Cloudflare Workers without authentication.
OpenOcean Finance
An MCP server for executing token swaps across multiple decentralized exchanges using OpenOcean's aggregation API
Gaffer.sh
CI Memory For Agents and Teams
Rust Docs MCP Server
Query up-to-date documentation for Rust crates.