@helm-ai/mcp-server
v0.25.0
Published
MCP server for Helm — run your business operations (projects, CRM, billing, automations, AI agents) from Claude or any MCP client
Maintainers
Readme
Helm MCP Server
MCP (Model Context Protocol) server for Helm — run your business operations (projects, customers, billing, automations, and AI agents) directly from Claude or any MCP-compatible AI assistant.
What is Helm?
Helm is the AI Operations Platform for founder-led business — AI agents take on the operational work so your team is free for the work that matters. Customers, projects, time and billing, documents, automations, and AI staff live in one place that runs itself.
Key features:
- Projects & Tasks - Organize work with kanban boards, priorities, and assignments
- CRM - Track accounts, contacts, and deals through your pipeline
- Time, Billing & Catalog - Log time, manage a product catalog, and generate invoices and estimates
- Documents - Create and organize rich-text documents with folders and multi-page support
- Calendar - Manage events and meetings with video conferencing support
- Forms & Sequences - Capture leads and nurture them with automated email sequences
- Automations - Event-driven workflows that handle the busywork
- AI Agents - Autonomous AI staff with schedules, email, and tool access
Why use the Helm MCP Server?
With the Helm MCP server, you can run your Helm workspace without leaving your AI assistant:
- Create tasks as you work - found a bug? Create a task instantly
- Track time on projects without switching contexts
- Manage your pipeline - accounts, contacts, deals, and products
- Generate invoices and estimates from your catalog
- Capture and nurture leads with forms and email sequences
- Build automations that handle recurring work
- Direct your AI agents - schedules, email, and more
All from within Claude Code, Claude Desktop, or any MCP-compatible tool.
Installation
npm install -g @helm-ai/mcp-serverOr use with npx (recommended):
npx @helm-ai/mcp-serverQuick Start
1. Get your Helm API Key
- Log in to your Helm workspace
- Go to Settings → API Keys
- Click Create API Key
- Give it a name (e.g., "Claude MCP")
- Copy the API key (starts with
helm_sk_...)
Important: Save this key securely - you won't be able to see it again!
2. Configure the MCP Server
Add the Helm MCP server to your Claude configuration:
For Claude Code (~/.claude.json or project .mcp.json):
{
"mcpServers": {
"helm": {
"command": "npx",
"args": ["-y", "@helm-ai/mcp-server@latest"],
"env": {
"HELM_API_KEY": "helm_sk_your_api_key_here"
}
}
}
}For Claude Desktop (claude_desktop_config.json):
{
"mcpServers": {
"helm": {
"command": "npx",
"args": ["-y", "@helm-ai/mcp-server@latest"],
"env": {
"HELM_API_KEY": "helm_sk_your_api_key_here"
}
}
}
}3. Optional: Set a Default Project
If most of your tasks go to one project, set a default:
{
"env": {
"HELM_API_KEY": "helm_sk_your_api_key_here",
"HELM_DEFAULT_PROJECT_ID": "your-project-uuid"
}
}Available Tools
Projects
| Tool | Description |
|------|-------------|
| helm__get_projects | List all projects in your workspace |
| helm__create_project | Create a new project (optionally linked to an account) |
Tasks
| Tool | Description |
|------|-------------|
| helm__add_task | Create a new task (with title, description, priority, status, assignees) |
| helm__get_tasks | List tasks with optional filters (status, priority, project) |
| helm__get_task | Get a specific task by ID |
| helm__update_task | Update task title, status, priority, assignees, or due date |
| helm__add_task_comment | Add a comment to a task |
| helm__upload_attachment | Upload a file (base64) to attach to a task or comment |
Documents
| Tool | Description |
|------|-------------|
| helm__create_document | Create a new document (supports markdown or JSON content) |
| helm__get_documents | List documents with optional filters |
| helm__get_document | Get a specific document by ID |
| helm__update_document | Update document title, content, status, or visibility |
| helm__get_document_pages | List all pages in a multi-page document |
| helm__create_document_page | Append a new page to an existing multi-page document |
| helm__get_document_page | Get a specific page with full content |
| helm__update_document_page | Rename, rewrite, re-icon or move a page |
| helm__delete_document_page | Delete a page from a multi-page document |
| helm__reorder_document_pages | Put a document's pages in a new order |
| helm__get_document_outline | Read a document's headings as an addressable outline |
| helm__get_document_blocks | Read a document block by block, each with a stable address |
| helm__patch_document | Edit named blocks in place instead of rewriting the whole document |
| helm__list_document_comments | Read the comment threads left on specific sentences |
| helm__resolve_document_comment | Close a comment thread once the change it asked for is made |
| helm__list_document_folders | List document folders (optionally filter by parent) |
| helm__create_document_folder | Create a new document folder |
| helm__move_document_to_folder | Move a document into a folder or to root |
| helm__bulk_create_document_folders | Create multiple folders in one call (up to 50) |
| helm__bulk_move_documents_to_folder | Move multiple documents into folders in one call (up to 100) |
Time Tracking
| Tool | Description |
|------|-------------|
| helm__create_time_entry | Log time to a project or task |
| helm__get_time_entries | List time entries with optional filters |
Estimates
| Tool | Description |
|------|-------------|
| helm__create_estimate | Create an estimate with line items |
| helm__get_estimates | List estimates with optional filters |
| helm__get_estimate | Get one estimate with its line items |
| helm__update_estimate | Update estimate details or status |
Accounts
| Tool | Description |
|------|-------------|
| helm__get_accounts | List accounts (companies you do business with) |
| helm__get_account | Get a specific account |
| helm__add_account | Create a new account |
| helm__update_account | Update account details |
Contacts
| Tool | Description |
|------|-------------|
| helm__get_contacts | List contacts/people |
| helm__get_contact | Get a specific contact |
| helm__add_contact | Create a new contact |
| helm__update_contact | Update contact details |
| helm__delete_contact | Delete a contact permanently |
Activity
| Tool | Description |
|------|-------------|
| helm__log_activity | Log an action/event or a data-point metric on a record's timeline |
Deals (Sales Pipeline)
| Tool | Description |
|------|-------------|
| helm__get_deals | List deals with optional filters |
| helm__get_deal | Get a specific deal |
| helm__add_deal | Create a new deal |
| helm__update_deal | Update deal stage, value, or other details |
| helm__delete_deal | Delete a deal |
Deal Pipelines
Deals live on a pipeline, and each pipeline defines its own ordered stages. Call helm__get_pipelines first to discover pipeline IDs and valid stage keys before creating or moving deals.
| Tool | Description |
|------|-------------|
| helm__get_pipelines | List all pipelines, each with its ordered stages |
| helm__add_pipeline | Create a pipeline (seeds default stages unless you pass your own) |
| helm__update_pipeline | Update a pipeline's name, description, color, position, or default flag |
| helm__delete_pipeline | Delete a pipeline (pass reassign_to_pipeline_id if it still has deals) |
| helm__add_pipeline_stage | Add a stage to a pipeline |
| helm__update_pipeline_stage | Update a stage (changing its key migrates deals on that stage) |
| helm__delete_pipeline_stage | Delete a stage (its deals move to the first remaining stage) |
| helm__reorder_pipeline_stages | Reorder the stages in a pipeline |
Calendar Events
| Tool | Description |
|------|-------------|
| helm__get_calendar_events | List calendar events (defaults to upcoming 7 days) |
| helm__get_calendar_event | Get a specific calendar event |
| helm__create_calendar_event | Create a new event with optional conferencing |
| helm__update_calendar_event | Update event details |
| helm__delete_calendar_event | Delete a calendar event |
Invoices
| Tool | Description |
|------|-------------|
| helm__get_invoices | List invoices with optional filters |
| helm__get_invoice | Get a specific invoice with line items |
| helm__create_invoice | Create a new invoice with line items |
| helm__update_invoice | Update invoice details or status |
| helm__add_line_item | Add a custom line to an invoice or estimate |
| helm__update_line_item | Change a line's description, quantity, rate or position |
| helm__delete_line_item | Remove a line from an invoice or estimate |
Products & Catalog
| Tool | Description |
|------|-------------|
| helm__list_products | List catalog products (what you sell) |
| helm__get_product | Get a product by id or name |
| helm__create_product | Add a product to the catalog |
| helm__update_product | Edit a product (only the fields you pass) |
| helm__archive_product | Archive (or unarchive) a product |
| helm__attach_product_to_deal | Attach a product to a deal to suggest its value |
| helm__add_line_item_from_product | Add a product as a line item on an invoice/estimate |
| helm__list_product_prices | List a product's price tiers |
| helm__create_product_price | Add a price tier to a product |
| helm__update_product_price | Edit a price tier |
| helm__delete_product_price | Delete a price tier |
| helm__list_account_products | Customer-360: products an account uses, bought, or has in pipeline |
| helm__attach_product_to_account | Record an account as a customer for a product (no invoice) |
| helm__update_account_product | Update a product↔account link (end it, change tier, rate, qty) |
| helm__detach_product_from_account | Remove a product↔account attribution |
Forms
| Tool | Description |
|------|-------------|
| helm__list_forms | List lead-capture / intake forms with status and counts |
| helm__get_form | Get a form's full structure (and embed snippet if live) |
| helm__create_form | Create a form (draft) |
| helm__add_form_step | Add a step (page) to make a form multi-step |
| helm__add_form_field | Add a field to a form (text, select, choice cards, etc.) |
| helm__update_form_field | Edit a field (pass only what changes; get IDs from helm__get_form) |
| helm__delete_form_field | Remove a field (submissions already collected are kept) |
| helm__update_form_step | Edit a step's heading, subtitle, or position |
| helm__delete_form_step | Remove a step (its fields stay on the form, unstepped) |
| helm__set_form_status | Publish, unpublish, or archive a form |
| helm__get_form_submissions | Read recent submissions (leads) |
| helm__get_form_stats | Submission counts (total / 7d / 30d) |
Email Sequences
| Tool | Description |
|------|-------------|
| helm__list_email_sequences | List email sequences |
| helm__get_sequence | Get a sequence with its steps and enrollment stats |
| helm__create_email_sequence | Create a sequence (draft) |
| helm__create_sequence_email | Add an email (with a delay) to a sequence |
| helm__update_email_sequence | Edit sequence settings: name, sender identity, exit rules, transactional flag |
| helm__delete_email_sequence | Permanently delete a sequence, its emails, and its enrollments |
| helm__update_sequence_email | Edit an email in place: subject, body, or delay |
| helm__delete_sequence_email | Remove an email (remaining emails move up to close the gap) |
| helm__reorder_sequence_emails | Reorder a sequence's emails (pass every id in the new order) |
| helm__set_sequence_status | Publish, pause, or archive a sequence (a draft only starts sending once published) |
| helm__enroll_in_sequence | Enroll a contact into a sequence |
| helm__list_sequence_enrollments | List enrolled contacts and their progress |
| helm__pause_sequence_enrollment | Pause one contact's enrollment, keeping their progress |
| helm__resume_sequence_enrollment | Resume a paused enrollment from where it stopped |
| helm__exit_sequence_enrollment | Permanently remove one contact from a sequence |
Agent Email
| Tool | Description |
|------|-------------|
| helm__agent_send_email | Send an outbound email as one of your AI agents |
Agent Schedules
| Tool | Description |
|------|-------------|
| helm__get_agent_schedules | List recurring schedules for AI agents |
| helm__create_agent_schedule | Create a recurring schedule (daily/weekly/monthly) |
| helm__update_agent_schedule | Update schedule settings or enable/disable |
| helm__delete_agent_schedule | Delete an agent schedule |
Agent Objectives & Watches
Schedules fire on a clock. Objectives and watches let an agent act on state instead: a standing goal it pursues across runs, and triggers that fire relative to a date on a record.
| Tool | Description |
|------|-------------|
| helm__get_agent_objectives | List standing objectives (optionally filter by agent) |
| helm__create_agent_objective | Create a persistent goal, e.g. "no invoice goes 7 days overdue without a reminder" |
| helm__update_agent_objective | Update an objective's settings |
| helm__delete_agent_objective | Delete an objective (linked watches are unlinked, not deleted) |
| helm__get_agent_watches | List entity watches (optionally filter by agent or objective) |
| helm__create_agent_watch | Fire an agent relative to a record's date, e.g. 3 days before an invoice is due |
| helm__update_agent_watch | Update a watch's settings |
| helm__delete_agent_watch | Delete a watch |
Workflows
Build and operate automation workflows. Call helm__get_workflow_schema first when authoring — it returns the full grammar (valid triggers, every step type and its required config, entities and their writable columns, condition operators, and the template path rules) so create/update succeed on the first try.
| Tool | Description |
|------|-------------|
| helm__get_workflow_schema | Get the authoring grammar (triggers, step types, entities, operators, rules). Read this before building. |
| helm__get_workflows | List workflows (filter by status) |
| helm__get_workflow | Get a workflow's full trigger + steps config |
| helm__get_workflow_executions | List recent execution runs and any errors |
| helm__create_workflow | Create a workflow (trigger + steps). Validated; saved as draft unless status: live. |
| helm__update_workflow | Update a workflow; only the fields you pass change. The merged result is validated. |
| helm__delete_workflow | Permanently delete a workflow |
| helm__set_workflow_status | Enable (live), pause (draft), or archive a workflow |
| helm__execute_workflow | Manually run a workflow now, bypassing trigger conditions |
Validation is severity-tiered: hard errors (unknown step type/entity/operator, etc.) always block; "incomplete" issues (missing required config) block only when going live; warnings (e.g. a step template missing the {{trigger.}} prefix) are advisory. Workflows created via the API auto-lay-out in the visual builder.
Example Usage
Create a task while coding
"Add a Helm task: Fix the authentication bug in the login flow - high priority"Log time after completing work
"Log 2 hours to the Website Redesign project for frontend development"Check your tasks
"Show me all my in-progress tasks in Helm"Create an estimate
"Create an estimate for Acme Corp: 10 hours of development at $150/hour"Manage your sales pipeline
"Create a deal for the new website project with Acme Corp, valued at $15,000"Build an automation workflow
"When a new customer account is created, email them a welcome message. Build it as a Helm workflow and turn it on."Links
- Helm Website: https://gethelm.ai
- Documentation: https://gethelm.ai/docs/
License
MIT - see LICENSE for details.
Built with love by the Helm team.
