A Model Context Protocol (MCP) server that provides natural language access to CMap Professional Services CRM API data through Claude Desktop.
This is a real working MCP server used in production to connect Claude to CMAP CRM.
- Get CMAP API credentials from your CMAP administrator
- Install:
npm install -g cmap-mcp-server
or use with npx - Configure environment variables with your credentials
- Add to Claude Desktop MCP configuration
- Query your CMAP data in natural language
- Companies: Client companies and prospects in your CRM
- Projects: Client projects with financial tracking and resourcing
- Users: Team members, consultants, and their assignments
- Contacts: Client contacts and stakeholders
- Financial Data: Project profitability, budgets, and billing
- Budget v2: Detailed project budgets with tabs, stages, and task-level cost breakdowns
"Show me all active projects over £50,000"
"Which consultants are available next week?"
"Find all contacts at our top clients"
"What's the total value of projects managed by [Project Manager Name]?"
"Show project profitability by client"
"Using cmap, find all active projects with overdue invoices"
"Show me the budget breakdown for project ID 12345"
"What are the budget stages for this project?"
"List all budget tasks and their estimated costs"
- Contact your CMAP administrator
- Request sandbox API credentials for testing
- You'll receive:
- Client ID
- Client Secret
- Tenant ID
- Sandbox API URL
- Complete sandbox testing first
- Request production credentials from CMAP administrator
- Use production API URL in configuration
npx cmap-mcp-server
npm install -g cmap-mcp-server
cmap-mcp-server
# Fork this repository
git clone https://github.com/your-org/cmap-mcp-server.git
cd cmap-mcp-server
# Update package.json with your organization details
# Change name to "@your-org/cmap-mcp-server"
# Install and build
npm install
npm run build
# Publish to your NPM account
npm publish
# Clone the repository
git clone https://github.com/zabarich/cmap-mcp-server.git
cd cmap-mcp-server
# Install dependencies
npm install
# Build the project
npm run build
# Run the MCP server
npx mcp-server .
Create a .env
file or set environment variables:
# Required CMAP API credentials (get from your admin)
CMAP_CLIENT_ID=your-cmap-client-id
CMAP_CLIENT_SECRET=your-cmap-client-secret
CMAP_TENANT_ID=your-cmap-tenant-id
# Environment selection
CMAP_BASE_URL=https://api.cmap-sandbox.com # Sandbox (recommended for testing)
# CMAP_BASE_URL=https://api.cmaphq.com # Production (use after sandbox testing)
Add to your Claude Desktop MCP configuration file:
For NPX usage:
{
"mcpServers": {
"cmap": {
"command": "npx",
"args": ["-y", "cmap-mcp-server"],
"env": {
"CMAP_CLIENT_ID": "your-client-id",
"CMAP_CLIENT_SECRET": "your-client-secret",
"CMAP_TENANT_ID": "your-tenant-id",
"CMAP_BASE_URL": "https://api.cmap-sandbox.com"
}
}
}
}
For your own published version:
{
"mcpServers": {
"cmap": {
"command": "npx",
"args": ["-y", "@your-org/cmap-mcp-server"],
"env": {
"CMAP_CLIENT_ID": "your-client-id",
"CMAP_CLIENT_SECRET": "your-client-secret",
"CMAP_TENANT_ID": "your-tenant-id",
"CMAP_BASE_URL": "https://api.cmap-sandbox.com"
}
}
}
}
- Request sandbox credentials from your CMAP administrator
- Configure with sandbox URL:
https://api.cmap-sandbox.com
- Test basic connectivity: Ask Claude "Can you check CMAP connectivity?"
- Verify data access: Try "List all companies" or "Show me projects"
- Test complex queries: Try relationship-based queries
- Validate business logic: Ensure responses match your expectations
"Test the CMAP connection"
"How many companies are in the system?"
"Show me the project status distribution"
"List the types of users in the system"
Tool | Description | Use Cases |
---|---|---|
get_companies |
Retrieve company directory | "Show all clients", "Find consulting firms" |
get_projects |
List projects with filters | "Active projects", "Projects over £X" |
get_project |
Detailed project information | "Project details for ID X" |
get_users |
Team member directory | "List all consultants", "Find available resources" |
get_contacts |
Contact directory | "Contacts at company X" |
get_budget_tabs |
Get project budget tabs (v2) | "Show budget categories for project" |
get_budget_stages |
Get project budget stages (v2) | "List project phases and costs" |
get_budget_tasks |
Get project budget tasks (v2) | "Show detailed task-level budgets" |
health_check |
Verify API connectivity | "Test CMAP connection" |
"What's the total value of all active projects?"
"Show me project profitability by client"
"Which projects are over budget?"
"Break down the budget by stages for project X"
"Show me all budget tasks with cost estimates"
"Who's available for new projects next month?"
"Show consultant utilization rates"
"Find team members with specific skills"
"Show me our top clients by revenue"
"Find all prospects in the pipeline"
"Which clients have the most active projects?"
- Never commit credentials: Use environment variables only
- Start with sandbox: Always test in sandbox before production
- Rotate credentials: Regularly update your API credentials
- Monitor usage: Track API calls and unusual activity
- Limit access: Only provide credentials to authorized team members
"Authentication failed"
- Verify your credentials are correct
- Check if credentials are for the right environment (sandbox/prod)
- Ensure tenant_id matches your CMAP instance
"403 Forbidden"
- Verify tenant_id is included in requests
- Check if your credentials have proper permissions
- Contact CMAP administrator for access verification
"No data returned"
- Verify you're querying the correct environment
- Check if your CMAP instance has the expected data
- Try simpler queries first
- Check this documentation
- Review CMAP API documentation
- Open an issue on GitHub
- Contact your CMAP administrator for credential issues
See CONTRIBUTING.md for detailed contribution guidelines.
MIT License - see LICENSE for details.
Richard Wild - GitHub
- Model Context Protocol by Anthropic
- CMap Professional Services CRM Software