Karbon MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| PORT | No | HTTP mode only: port to listen on (default 8787; --port wins) | 8787 |
| KARBON_READ_ONLY | No | Set to 'true' to disable all create/update tools | false |
| KARBON_ACCESS_KEY | Yes | Access key (JWT) from Karbon Connected Apps (required) | |
| KARBON_HTTP_SECRET | No | HTTP mode only: secret path segment for the endpoint (/mcp/<secret>) | |
| KARBON_API_BASE_URL | No | Override the API base URL | https://api.karbonhq.com/v3 |
| KARBON_BEARER_TOKEN | Yes | Bearer token from Karbon Connected Apps (required) |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_contactsA | List or search person contacts in Karbon. Supports OData filtering, e.g. filter: "contains(FullName,'Smith')" or "ContactType eq 'Client'". |
| get_contactA | Get a single person contact by ContactKey, optionally expanding related data (BusinessCards, AccountingDetail, ClientTeam). |
| create_contactC | Create a new person contact in Karbon. |
| update_contactA | Update fields on an existing person contact (partial update via PATCH). Only include the fields you want to change. |
| list_organizationsA | List or search organization contacts in Karbon. Supports OData filtering, e.g. filter: "contains(FullName,'Acme')". |
| get_organizationA | Get a single organization by OrganizationKey, optionally expanding related data (BusinessCards, AccountingDetail, ClientTeam, Contacts). |
| create_organizationB | Create a new organization contact in Karbon. |
| update_organizationB | Update fields on an existing organization (partial update via PATCH). Only include the fields you want to change. |
| list_work_itemsA | List or search work items (jobs/engagements) in Karbon. Useful filters: "PrimaryStatus eq 'InProgress'", "AssigneeEmailAddress eq 'user@firm.com'", "DueDate lt 2026-08-01". PrimaryStatus values: Planned, ReadyToStart, InProgress, Waiting, Completed. |
| get_work_itemB | Get a single work item by WorkItemKey. |
| create_work_itemA | Create a new work item in Karbon. WorkType and status values are tenant-specific — call get_tenant_settings first if unsure. |
| update_work_itemA | Update fields on an existing work item (partial update via PATCH). Only include the fields you want to change. |
| get_noteB | Get a single note by its NoteID. |
| create_noteA | Create a note in Karbon, optionally linked to work items, contacts, organizations, or client groups via timelines. Notes linked to a work item also appear on the client's timeline. |
| list_timesheetsA | List timesheets (read-only). Useful filters: "StartDate ge 2026-07-01", "UserKey eq '...'". |
| get_timesheetA | Get a single timesheet by TimesheetKey, optionally expanding TimeEntries. |
| list_time_entriesA | List individual time entries (read-only). Useful for reporting on time logged against clients or work items. |
| list_usersB | List Karbon users (team members) on this account. |
| get_userA | Get a single Karbon user by their UserId. |
| get_tenant_settingsA | Get this Karbon account's configuration: valid work statuses (secondary statuses), work types, and contact types. Call this before creating or updating work items or contacts with tenant-specific values. |
| list_work_templatesA | List work templates available on this account. Use a WorkTemplateKey with create_work_item to create templated work. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Mad-Man-Dan/karbon-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server