MCP_SERVERS.md - MCP Server Registry
Registers MCP servers with YAML schema blocks, tools, security rules, and lifecycle procedures for ChromaAI Dev integration.
What this file does
Registers MCP servers with YAML schema blocks, tools, security rules, and lifecycle procedures for ChromaAI Dev integration.
When to use it
- Adding a new MCP server to your project
- Auditing security posture of existing MCP integrations
- Standardising server startup, health check, and shutdown logic
- Documenting environment variable requirements and ACL rules
Assumes this stack
schema_version: "1.0" last_updated: "2026-02-23" validated_by: build_system status: draft
MCP_SERVERS.md - MCP Server Registry
This file defines Model Context Protocol (MCP) servers that ChromaAI Dev integrates with. Each server provides tools, resources, and prompts that extend ChromaAI Dev's capabilities.
Purpose: Source of truth for MCP server configurations, capabilities, security posture, and integration requirements.
Server Registry
github-mcp-server
Official GitHub MCP server providing repository operations.
name: github
version: "1.0.0"
description: GitHub operations via MCP (issues, PRs, code search, repos)
server_command: ["npx", "-y", "@modelcontextprotocol/server-github"]
server_type: stdio
environment_variables:
GITHUB_TOKEN: "vault://secrets/github-token"
capabilities:
- tools
- resources
risk_rating: medium
allowed_environments: [dev, stage, prod]
timeout_seconds: 30
max_retries: 3
Tools provided:
create_or_update_file- Create or update files in repositorysearch_repositories- Search GitHub repositoriescreate_repository- Create new repositoryget_file_contents- Read file from repositorypush_files- Push multiple files in single commitcreate_issue- Create GitHub issuecreate_pull_request- Create pull requestfork_repository- Fork repositorycreate_branch- Create new branch
Resources:
- Repository file contents
- Issue data
- Pull request information
Security requirements:
GITHUB_TOKENmust have minimal scopes:repo:readfor read operationsrepo:writefor write operations (dev/stage only)issues:writefor issue creation
- All write operations audited with request_id
- Rate limiting enforced (5000 requests/hour per GitHub API limits)
- No force push or destructive operations allowed
ACL requirements:
- Validate token scopes before server startup
- Deny operations outside allowed repositories (if scope configured)
- Audit trail for all mutations
- Separate tokens for dev/stage/prod
Usage example:
let result = mcp_client.call_tool("github", "search_repositories", json!({
"query": "language:rust stars:>1000 async"
})).await?;
context7-mcp-server
Context7 documentation retrieval MCP server.
name: context7
version: "1.0.0"
description: Retrieve up-to-date library documentation and code examples
server_command: ["npx", "-y", "@context7/mcp-server"]
server_type: stdio
environment_variables: {}
capabilities:
- tools
risk_rating: low
allowed_environments: [dev, stage, prod]
timeout_seconds: 60
max_retries: 2
Tools provided:
resolve-library-id- Convert library name to Context7 IDquery-docs- Query documentation with semantic search
Use cases:
- Retrieve current API documentation
- Find code examples and patterns
- Get setup/configuration instructions
- Resolve library version information
Security requirements:
- Read-only operations (no mutations)
- No authentication required (public docs)
- Rate limiting: Respect Context7 API limits
- Network egress allowed (requires external API access)
Usage pattern:
// 1. Resolve library
let lib_id = mcp_client.call_tool("context7", "resolve-library-id", json!({
"libraryName": "tokio",
"query": "async runtime for Rust"
})).await?;
// 2. Query docs
let docs = mcp_client.call_tool("context7", "query-docs", json!({
"libraryId": lib_id,
"query": "How to spawn async tasks?"
})).await?;
Adding New MCP Servers
Process:
- Add schema block to this file with all required fields
- Security review if risk_rating is medium or high
- Test integration:
- Server starts successfully
- Tools are discoverable
- Tool calls work end-to-end
- Error handling works
- Document in this file:
- Tools/resources/prompts provided
- Security requirements
- ACL requirements
- Usage examples
- Update tests: Add integration test in
tests/mcp_servers/
Required fields:
name: Unique server identifierversion: Semver versionserver_command: Command to start servercapabilities: List of capabilities (tools, resources, prompts)risk_rating: low, medium, highallowed_environments: Which envs can use this server
Optional fields:
environment_variables: Required env varstimeout_seconds: Command timeoutmax_retries: Retry attempts on failureconfig_file: Path to server-specific config
Server Lifecycle
Startup:
- Validate environment variables exist
- Start server process with stdio transport
- Wait for server initialization message
- Discover capabilities (tools/resources/prompts)
- Validate discovered capabilities match schema
- Ready to accept requests
Shutdown:
- Send shutdown notification to server
- Wait for graceful shutdown (max 5 seconds)
- Kill process if not terminated
- Clean up resources
Health checking:
- Periodic ping to ensure server responsive
- Restart on crash (up to max_retries)
- Circuit breaker on repeated failures
- Alert on server unavailability
Security Considerations
Sandboxing:
- MCP servers run as separate processes
- No direct filesystem access unless explicitly granted
- Network access controlled by firewall rules
- Cannot access ChromaAI Dev's memory or state
Secret management:
- Environment variables from vault (never hardcoded)
- Secrets rotated periodically
- Separate secrets for dev/stage/prod
- Audit all secret access
Audit trail:
- Log all tool calls with request_id
- Log tool inputs (redacted if sensitive)
- Log tool outputs (redacted if sensitive)
- Log errors and retries
- Track cost per tool call (if applicable)
Changelog
1.0 (2026-02-23)
- Initial version
- Added github-mcp-server
- Added context7-mcp-server
Next Steps
- Add more MCP servers as integrations needed
- Define server capability negotiation
- Add server performance metrics
- Document server-specific optimization strategies
What's inside
2 server registries with YAML schemas, 11 tools listed, 4 lifecycle steps, 3 security sections, 1 changelog entry.
Change this for your project
- Replace
vault://secrets/github-tokenwith your own secret store reference - Replace
chroma-ai-devreferences in paths and descriptions with your project name - Replace
tests/mcp_servers/with your actual test directory path
Where it goes
A standard operating procedure. Keep where the team or agent running the process will find it.
Worth borrowing
- YAML schema blocks embedded in Markdown for machine-readable server definitions
- Risk rating and allowed_environments fields to gate server access per deployment stage
- Separate audit trail requirements for read vs write operations
Related Documents
Comprehensive AI Assistant Tools Reference
Lists 80+ tools with MCP server associations, bulk support, parallel capability, resource impact, and execution type for AI agent workflows.
iOS Deployment Guide
Walks through setting up an iOS development environment, building a Tauri app for iOS, and publishing to the App Store or alternative channels.
How to Add Resources to Your FastMCP Server
Teaches how to add static and dynamic MCP resources to a FastMCP server, with six ready-to-copy examples for a GitHub crawler.
PCI Compliance Guide
Explains PCI DSS compliance via tokenization, lists forbidden and allowed data, and provides code examples for BigCommerce and Stripe.