MCP Server
Let AI agents interact with Workestra using our MCP server — 63 tools across CRM, invoicing, projects, tickets, analytics, recruiting, and more.
MCP Server (Model Context Protocol)
The Workestra MCP server provides 63 tools across 13 feature groups that AI agents can use to interact with your workspace data — CRM, invoicing, tickets, projects, analytics, recruiting, knowledge base, quotations, and more — all secured by your Workestra API key.
What is MCP?
MCP (Model Context Protocol) is an open standard that lets AI tools like Claude, Cursor, and VS Code Copilot discover and call functions on external systems. Once connected, your AI assistant can directly search contacts, create deals, manage tickets, track projects, analyze revenue, and more — without copy-pasting data or building custom integrations.
Authentication
The MCP server uses your Workestra API key for authentication. Your API key is the only credential you need — it automatically determines which workspace you access and what operations are allowed.
Creating an API Key
- Go to Settings → Administration → API in the Workestra dashboard
- Click Create API Key
- Name your key (e.g., "Claude Code MCP")
- Select the permissions you need:
- Read permissions for search and viewing data
- Create permissions for adding new records
- Update permissions for modifying existing records
- Delete permissions for removing records
- Copy your key — it starts with
sk_live_and is only shown once
How It Works
Your machine Workestra
┌─────────────────────┐ ┌──────────────────┐
│ Claude / Cursor │ │ │
│ ↕ stdio │ │ api_keys table │
│ workestra-mcp server │──verify──▶│ (SHA-256 hash) │
│ (runs locally) │ │ ↓ │
│ │──query───▶│ workspace data │
└─────────────────────┘ └──────────────────┘- You provide your API key (
sk_live_...) - The server hashes it and verifies it against the
api_keystable - Your workspace ID is resolved from the key — all queries are scoped automatically
- Permissions on the key control which tools are allowed
- A user can only access the workspace their API key belongs to
Security Best Practices
- Use separate API keys for each AI tool or agent
- Grant only the permissions your workflow requires
- Enable read-only mode when you only need to query data
- Set expiration dates for temporary access
- Revoke keys immediately if compromised
Connect to the MCP Server
Cursor
Add to your ~/.cursor/mcp.json:
{
"mcpServers": {
"workestra": {
"command": "npx",
"args": ["-y", "@workestra/mcp"],
"env": {
"WORKESTRA_API_KEY": "sk_live_your-key-here"
}
}
}
}VS Code
Add to .vscode/mcp.json in your workspace:
{
"servers": {
"workestra": {
"command": "npx",
"args": ["-y", "@workestra/mcp"],
"env": {
"WORKESTRA_API_KEY": "sk_live_your-key-here"
}
}
}
}Claude Code
claude mcp add workestra -- npx -y @workestra/mcp --api-key=sk_live_your-key-hereClaude Desktop
Add to your claude_desktop_config.json:
{
"mcpServers": {
"workestra": {
"command": "npx",
"args": ["-y", "@workestra/mcp", "--api-key=sk_live_your-key-here"]
}
}
}Windsurf
Add to ~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"workestra": {
"command": "npx",
"args": ["-y", "@workestra/mcp"],
"env": {
"WORKESTRA_API_KEY": "sk_live_your-key-here"
}
}
}
}ChatGPT / Other Clients
MCP is an open protocol supported by many clients. The server accepts the WORKESTRA_API_KEY environment variable or the --api-key CLI flag.
CLI Options
npx -y @workestra/mcp [options]| Option | Description |
|---|---|
--api-key=KEY | Your Workestra API key (required) |
--read-only | Block all write operations |
--features=LIST | Comma-separated feature groups (default: all) |
--version | Show version |
--help | Show help |
Feature Groups
Control which tools are available:
| Feature | Tools | Description |
|---|---|---|
contacts | 5 tools | Contact search, CRUD operations |
deals | 5 tools | Deal management, pipeline summary |
companies | 4 tools | Company search, CRUD operations |
activities | 4 tools | Activity logging (calls, emails, meetings) |
pipeline | 2 tools | Pipeline stages, CRM dashboard |
invoicing | 6 tools | Invoices, products, stats |
tickets | 4 tools | Support ticket management |
projects | 6 tools | Projects, tasks, cross-module search |
analytics | 6 tools | Pipeline, revenue, forecast, support, expenses, aging |
recruiting | 6 tools | Jobs, candidates, application status, metrics |
knowledge | 5 tools | Knowledge base search, documents, AI suggestions |
quotations | 4 tools | Quotation management and stats |
workspace | 6 tools | Team members, teams, users, audit log, bulk operations |
Example — enable only contacts and deals:
npx -y @workestra/mcp --api-key=sk_live_... --features=contacts,dealsExample — enable CRM and support tools:
npx -y @workestra/mcp --api-key=sk_live_... --features=contacts,deals,companies,activities,pipeline,ticketsTools
Contacts
| Tool | Description |
|---|---|
search_contacts | Search contacts by name, email, job title with filters |
get_contact | Get detailed contact information by ID |
create_contact | Create a new contact or lead |
update_contact | Update a contact's fields |
delete_contact | Delete a contact |
Deals
| Tool | Description |
|---|---|
list_deals | List deals with status, stage, value, and date filters |
get_deal | Get detailed deal information |
create_deal | Create a new deal/opportunity |
update_deal | Update deal fields (auto-sets close dates) |
get_pipeline_summary | Pipeline breakdown by stage with counts and values |
Companies
| Tool | Description |
|---|---|
search_companies | Search companies by name, industry, website |
get_company | Get detailed company information |
create_company | Create a new company/account |
update_company | Update company fields |
Activities
| Tool | Description |
|---|---|
list_activities | List calls, emails, meetings, tasks, and notes |
get_activity | Get detailed activity information |
create_activity | Log a new activity |
complete_activity | Mark an activity as completed with outcome |
Pipeline & Dashboard
| Tool | Description |
|---|---|
list_pipeline_stages | List all configured pipeline stages |
get_crm_dashboard | Full CRM metrics: contacts, deals, activities, pipeline |
Invoicing
| Tool | Description |
|---|---|
list_invoices | List invoices with status, date, and client filters |
get_invoice | Get detailed invoice information by ID |
create_invoice | Create a new invoice |
get_invoice_stats | Invoice totals, overdue amounts, and status breakdown |
list_products | List available products and services |
get_product | Get detailed product information |
Tickets
| Tool | Description |
|---|---|
list_tickets | List support tickets with status, priority, and assignee filters |
get_ticket | Get detailed ticket information by ID |
create_ticket | Create a new support ticket |
update_ticket | Update ticket fields (status, priority, assignee, etc.) |
Projects
| Tool | Description |
|---|---|
list_projects | List projects with status and date filters |
get_project | Get detailed project information by ID |
list_tasks | List tasks with project, status, and assignee filters |
create_task | Create a new task in a project |
update_task | Update task fields (status, assignee, due date, etc.) |
search_all | Cross-module search across contacts, deals, tickets, tasks, and more |
Analytics
| Tool | Description |
|---|---|
get_pipeline_analytics | Pipeline conversion rates, stage velocity, bottlenecks |
get_revenue_metrics | Revenue totals, MRR, growth trends |
get_sales_forecast | Weighted pipeline forecast and win probability |
get_support_metrics | Ticket volume, resolution times, SLA compliance |
get_expense_summary | Expense totals by category and period |
get_invoice_aging | Outstanding invoice aging buckets (30/60/90+ days) |
Recruiting
| Tool | Description |
|---|---|
list_jobs | List job offers with status and department filters |
get_job | Get detailed job offer information by ID |
list_candidates | List candidates with job, stage, and status filters |
get_candidate | Get detailed candidate information by ID |
update_application_status | Move a candidate to a new pipeline stage |
get_recruiting_metrics | Hiring funnel, time-to-hire, source effectiveness |
Knowledge Base
| Tool | Description |
|---|---|
search_knowledge_base | Semantic search across knowledge base documents |
get_document | Get a knowledge base document by ID |
list_knowledge_base | List all knowledge base documents |
get_ai_suggestions | Get AI-generated proactive suggestions |
acknowledge_suggestion | Mark an AI suggestion as acknowledged or dismissed |
Quotations
| Tool | Description |
|---|---|
list_quotations | List quotations with status, date, and client filters |
get_quotation | Get detailed quotation information by ID |
create_quotation | Create a new quotation |
get_quotation_stats | Quotation totals, acceptance rates, and status breakdown |
Workspace
| Tool | Description |
|---|---|
list_team_members | List all members in the workspace |
list_teams | List all teams in the workspace |
get_user | Get detailed user profile information |
get_audit_log | Retrieve audit log entries with date and action filters |
bulk_update_contacts | Bulk update fields on multiple contacts |
bulk_update_deals | Bulk update fields on multiple deals |
Permissions
Each tool requires specific permissions on your API key:
| Permission | Tools |
|---|---|
read_contacts | search_contacts, get_contact |
create_contacts | create_contact |
update_contacts | update_contact, bulk_update_contacts |
delete_contacts | delete_contact |
read_deals | list_deals, get_deal, get_pipeline_summary, get_pipeline_analytics, get_revenue_metrics, get_sales_forecast |
create_deals | create_deal |
update_deals | update_deal, bulk_update_deals |
read_companies | search_companies, get_company |
create_companies | create_company |
update_companies | update_company |
read_activities | list_activities, get_activity |
create_activities | create_activity |
update_activities | complete_activity |
read_pipeline | list_pipeline_stages |
read_dashboard | get_crm_dashboard |
read_invoices | list_invoices, get_invoice, get_invoice_stats, get_invoice_aging |
create_invoices | create_invoice |
read_products | list_products, get_product |
read_tickets | list_tickets, get_ticket, get_support_metrics |
create_tickets | create_ticket |
update_tickets | update_ticket |
read_projects | list_projects, get_project, search_all |
read_tasks | list_tasks |
create_tasks | create_task |
update_tasks | update_task |
read_expenses | get_expense_summary |
read_jobs | list_jobs, get_job, get_recruiting_metrics |
read_candidates | list_candidates, get_candidate |
update_candidates | update_application_status |
read_knowledge_base | search_knowledge_base, get_document, list_knowledge_base, get_ai_suggestions, acknowledge_suggestion |
read_quotations | list_quotations, get_quotation, get_quotation_stats |
create_quotations | create_quotation |
read_teams | list_team_members, list_teams, get_user, get_audit_log |
Building Autonomous Agents
Pass a Workestra API key with restricted permissions when spawning the MCP server:
npx -y @workestra/mcp --api-key=sk_live_your-key --read-only --features=contacts,dealsRead-Only Mode
Use --read-only to prevent any write operations:
npx -y @workestra/mcp --api-key=sk_live_your-key --read-onlyManaging API Keys
API keys are managed at Settings → Administration → API in the Workestra dashboard.
Each API key has:
- Granular permissions — control read/create/update/delete per entity type
- Workspace scoping — automatically limits all queries to your workspace
- Expiration dates — optional, for time-limited access
- Usage tracking — last used timestamp and audit logs
- Instant revocation — delete a key to revoke access immediately
Example Prompts
Once connected, try these prompts in your AI assistant:
- "Show me all leads that were created this month"
- "Create a new contact for John Smith at Acme Corp"
- "What's the total value of our open deals?"
- "Move the Acme deal to the proposal stage"
- "Show me my pipeline summary"
- "List all activities for this week"
- "Create a follow-up call for tomorrow with Sarah"
- "What are my overdue invoices?"
- "Show me all open support tickets assigned to me"
- "Create a task in the Q2 Launch project"
- "What's our revenue trend this quarter?"
- "List candidates in the interview stage for the Senior Engineer role"
- "Search the knowledge base for onboarding guides"
- "Show me the sales forecast for this month"