Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, email [email protected] and we’ll put it right.

io.github.Mad-Man-Dan/karbon-mcp-server

NPM · KARBON-MCP-SERVER · SCANNED AUG 3

Unofficial MCP server for Karbon practice management: contacts, work, time, invoices, payments.

Available components

+34 this week 78 Trust /100
Trust breakdown (6 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score →

Supply Chain Security87
  • No malware found by supply-chain analysis.Pass
  • Only part of the dependency tree could be resolved (95 of 99), so this covers what we could see, not the whole tree.Partial
  • No install/post-install scripts declared.Pass
  • Only part of the dependency tree could be resolved (95 of 99), so this covers what we could see, not the whole tree. View diagnostics → Partial
Provenance & Transparency97
  • Source repository is publicly reachable at the declared URL. View diagnostics → Pass
  • Cryptographically verified build provenance (signed, bound to Mad-Man-Dan/karbon-mcp-server). View diagnostics → Pass
  • Clear OSI-approved license (MIT).Pass
  • Actively maintained (last published 17 days ago).Pass
  • Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
Schema Quality & AI Usability71
  • AI-judged instruction clarity (good).Pass
  • Context-footprint check failed: tool/resource definitions use about 5478 tokens (~109/item across 50 items; 50 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management27
  • Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage88
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 64% of tool parameters carry a description.Partial
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Install

Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.

npm · karbon-mcp-server

# add to Claude Code
claude mcp add mad-man-dan-karbon-mcp-server -- npx -y karbon-mcp-server
# add to Codex CLI
codex mcp add mad-man-dan-karbon-mcp-server -- npx -y karbon-mcp-server
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "mad-man-dan-karbon-mcp-server": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "karbon-mcp-server"
      ],
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add mad-man-dan-karbon-mcp-server --command npx --arg -y --arg karbon-mcp-server
# ~/.hermes/config.yaml
mcp_servers:
  mad-man-dan-karbon-mcp-server:
    command: "npx"
    args: ["-y", "karbon-mcp-server"]
// mcp.json
{
  "mcpServers": {
    "mad-man-dan-karbon-mcp-server": {
      "command": "npx",
      "args": [
        "-y",
        "karbon-mcp-server"
      ]
    }
  }
}
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 3 Aug 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 23 to 27. That category is still filling its 30-day observation window: 7 days of observed history at the previous scan, 8 at this one. The score rises as the window fills, whether or not the server changes.

  • 2 Aug 26 +72
    • Known CVEs: unverified → partial security
    • Install scripts: unverified → pass security
    • Provenance: unverified → pass security
    • Malware scan: unverified → pass security
    • Stability: Stability not yet verified: not enough scan history yet (needs a 30-day window). security
    • The attested source repository moved: Mad-Man-Dan/karbon-mcp-server security
    • Stability: unverified → 0.23 functional
    • Maintenance: unverified → pass functional
    • Dependency health: unverified → partial functional
    • License: unverified → pass functional
    • MCP protocol: unverified → pass functional
    • Tool coverage: unverified → 100 functional
    • Licence: MIT functional
  • 1 Aug 26 −28
    • Stability: Stability not yet verified: we do not have a sandbox capture of the MCP schema this version of the package serves yet. security
    • Capabilities: pass → unverified functional
    • Tool coverage: 100 → unverified functional
  • 31 Jul 26 +5
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 30 Jul 26 −61
    • Malware scan: pass → unverified security
    • Known CVEs: partial → unverified security
    • Tool coverage: 100 → unverified functional
    • Dependency health: partial → unverified functional
    • First check of Schema quality: unverified functional
  • 29 Jul 26 +45
    • Known CVEs: unverified → partial security
    • Provenance: unverified → pass security
    • Install scripts: unverified → pass security
    • The attested source repository moved: Mad-Man-Dan/karbon-mcp-server security
    • License: unverified → pass functional
    • Schema quality: unverified → good functional
    • Maintenance: unverified → pass functional
    • Dependency health: unverified → partial functional
    • Licence: MIT functional
  • 27 Jul 26 44

    First indexed and scored.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 3 Aug 2026 · Analysed npm/[email protected]

Provenance verified

Ecosystem: npm · Outcome: verified

Reason: verified

Source repo:
Mad-Man-Dan/karbon-mcp-server
Certificate issuer:
https://token.actions.githubusercontent.com
Certificate SAN:
https://github.com/Mad-Man-Dan/karbon-mcp-server/.github/workflows/publish-mcp.yml@refs/tags/v0.2.4
Rekor log index:
2180051394
Predicate type:
https://slsa.dev/provenance/v1
Subject digest:
sha512:81131ee7bd1f904f329d57ccb2cd0837f8ab8c8d46d6e103ead3f507b51e589184f3db5d429c15994a656f95e1ea485f31ffad3ac654a51cc0f870cd5
Discovery method:
attestation_endpoint
Dependencies 95 packages

95 packages in the resolved dependency tree · 95 deprecated · 29 stale.

The dependency tree was only partially resolved, so these counts may be incomplete.

MCP tools — 50 exposed · ~5,478 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability.

Tool Tokens
add_team_members ~81

Add one or more users to a team by their UserKeys (find them with list_users). Users already on the team are skipped. Team membership can affect work visibility and assignment — confirm with the user before changing it.

NameTypeReqDescription
UserKeysarrayyesUserKeys of the users to add
teamKeystringyesThe Karbon TeamKey

No output schema declared.

No examples provided.

create_client_group ~158

Create a new client group in Karbon. Members are existing contacts and/or organizations.

NameTypeReqDescription
ClientManagerstring
ClientOwnerstringEmail address of the Karbon user who owns this client relationship
ContactTypestringContact type label, e.g. 'Client'. Valid values come from get_tenant_settings.
EntityDescriptionobjectFree-form description of the client group
FullNamestringyesThe full name of the client group
Membersarray
PrimaryContactstringContactKey of the group's main contact
RestrictionLevelstring
UserDefinedIdentifierstringYour own external ID for this client group

No output schema declared.

No examples provided.

create_contact ~147

Create a new person contact in Karbon.

NameTypeReqDescription
BusinessCardsarray
ClientManagerstring
ClientOwnerstringEmail address of the Karbon user who owns this client
ContactTypestringContact type label, e.g. 'Client', 'Prospect'. Valid values come from get_tenant_settings.
FirstNamestringyes
LastNamestringyes
MiddleNamestring
PreferredNamestring
RestrictionLevelstring
Salutationstring
UserDefinedIdentifierstringYour own external ID for this contact

No output schema declared.

No examples provided.

create_custom_field ~108

Create a new custom field definition for the whole Karbon tenant. This changes the firm's shared configuration, not just one record — state the field name, type, and visibility to the user and get their explicit confirmation before calling.

NameTypeReqDescription
IsVisibleToContactsboolean
IsVisibleToOrganizationsboolean
ListOptionsarrayOptions for list-type fields
NamestringyesThe field name shown in Karbon
Typestringyes

No output schema declared.

No examples provided.

create_note ~146

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.

NameTypeReqDescription
AssigneeEmailAddressstringAssign the note as a to-do for this Karbon user
AuthorEmailAddressstringyesEmail address of the Karbon user authoring the note
BodystringyesNote body (supports basic HTML)
DueDatestringISO 8601 date
Subjectstringyes
TimelinesarrayEntities to link this note to
TodoDatestringISO 8601 date

No output schema declared.

No examples provided.

create_organization ~111

Create a new organization contact in Karbon.

NameTypeReqDescription
ClientManagerstring
ClientOwnerstringEmail address of the Karbon user who owns this client
ContactTypestringContact type label, e.g. 'Client', 'Prospect'. Valid values come from get_tenant_settings.
FullNamestringyesThe organization's name
RestrictionLevelstring
UserDefinedIdentifierstringYour own external ID for this organization

No output schema declared.

No examples provided.

create_work_item ~229

Create a new work item in Karbon. WorkType and status values are tenant-specific — call get_tenant_settings first if unsure.

NameTypeReqDescription
AssigneeEmailAddressstringyesEmail address of the Karbon user assigned to this work
ClientKeystringyesKey of the client this work is for (ContactKey, OrganizationKey, or ClientGroupKey)
ClientTypestringyes
DeadlineDatestring
Descriptionstring
DueDatestringISO 8601 date or date-time
EstimatedBudgetnumber
PrimaryStatusstring
SecondaryStatusstringTenant-specific status label from get_tenant_settings
StartDatestringyesISO 8601 date or date-time, e.g. 2026-08-01
Titlestringyes
WorkTemplateKeystringCreate from a work template (see list_work_templates)
WorkTypestringTenant-specific work type label, e.g. 'Tax Return'

No output schema declared.

No examples provided.

create_work_schedule ~365

Create a recurring work schedule from an existing work item. The schedule will automatically generate new work items on the recurrence you set — confirm the recurrence details with the user before calling. Note: RecurrenceFrequency cannot be changed after creation.

NameTypeReqDescription
AssigneeUserKeystringUserKey to assign generated work items to
CreatedFromWorkItemKeystringyesThe WorkItemKey the schedule is created from
CustomFrequencyMultipleintegeryesMultiple of the frequency unit; use 1 unless RecurrenceFrequency is Custom
CustomFrequencyUnitsstringOnly when RecurrenceFrequency is Custom
InitializeBeforeStartDateMultipleinteger
InitializeBeforeStartDateUnitsstringCreate the work item this long before its start date
InitializeTasksBeforeStartDateMultipleintegeryes
InitializeTasksBeforeStartDateUnitsstringyesCreate the work item's tasks/budget this long before its start date
PreventStartEndOnWeekendbooleanyesIf true, generated work items never start on a weekend
RecurrenceFrequencystringyes
ScheduleDueDateDaysintegerThe day count for the due date method (not used with LastDayOfMonth/NoDueDate)
ScheduleDueDateMethodstringyes
ScheduleDueDateMonthMultipleintegerOnly with DayOfSubsequentMonth: how many months later
ScheduleEndDatestringISO 8601 date the schedule stops; omit to run forever
ScheduleStartDatestringyesISO 8601 date the schedule starts
WorkItemTitleDefinitionstringyesTitle format for generated work items; supports Karbon title tokens (e.g. period/date placeholders)

No output schema declared.

No examples provided.

delete_custom_field ~101

DESTRUCTIVE AND IRREVERSIBLE: deleting a custom field definition permanently removes the field AND every value stored in it across all contacts, organizations, and client groups in the tenant. Never call this without first telling the user exactly which field will be deleted (by name, via list_custom_fields) and receiving their explicit confirmation for that specific field.

NameTypeReqDescription
customFieldDefinitionKeystringyesThe CustomFieldDefinitionKey to delete (from list_custom_fields)

No output schema declared.

No examples provided.

download_file ~117

Download a Karbon file to a local path on the machine running this MCP server. Get the DownloadUrl from list_entity_files first — download links expire after 15 minutes, so re-list if the download fails with an auth error. Ask the user where to save before writing outside a temp directory, and never overwrite a file the user didn't ask you to replace.

NameTypeReqDescription
downloadUrlstringyesThe DownloadUrl returned by list_entity_files
savePathstringyesAbsolute local file path to save to, including the file name

No output schema declared.

No examples provided.

get_business_card ~78

Get a single business card by BusinessCardKey. Business cards hold the contact details (email, phone, address, websites) of a contact, organization, or client group. Find the key by expanding BusinessCards on get_contact / get_organization / get_client_group.

NameTypeReqDescription
businessCardKeystringyesThe Karbon BusinessCardKey

No output schema declared.

No examples provided.

get_client_group ~116

Get a single client group by ClientGroupKey — or by your own UserDefinedIdentifier — optionally expanding related data (BusinessCard, ClientTeam). Includes the group's members (contacts and organizations). Provide exactly one of clientGroupKey or userDefinedIdentifier.

NameTypeReqDescription
clientGroupKeystringThe Karbon ClientGroupKey
expandstringComma-separated related data to include: BusinessCard, ClientTeam
userDefinedIdentifierstringLook up by your own external ID instead of the ClientGroupKey

No output schema declared.

No examples provided.

get_comment ~41

Get a single comment by its CommentKey. Comments appear on work item and client timelines alongside notes.

NameTypeReqDescription
commentKeystringyesThe Karbon CommentKey

No output schema declared.

No examples provided.

get_contact ~107

Get a single person contact by ContactKey — or by your own UserDefinedIdentifier — optionally expanding related data (BusinessCards, AccountingDetail, ClientTeam). Provide exactly one of contactKey or userDefinedIdentifier.

NameTypeReqDescription
contactKeystringThe Karbon ContactKey
expandstringComma-separated related data to include: BusinessCards, AccountingDetail, ClientTeam
userDefinedIdentifierstringLook up by your own external ID instead of the ContactKey

No output schema declared.

No examples provided.

get_custom_field_values ~53

Get the custom field values set on a specific entity (contact, organization, or client group) by its entity key.

NameTypeReqDescription
entityKeystringyesThe ContactKey, OrganizationKey, or ClientGroupKey

No output schema declared.

No examples provided.

get_estimate_summary ~67

Get the estimate summary for a work item (read-only): budgeted vs. actual time and value. Useful for 'are we over budget on this job' questions — pair with list_time_entries for detail.

NameTypeReqDescription
workItemKeystringyesThe Karbon WorkItemKey

No output schema declared.

No examples provided.

get_invoice ~65

Get a single invoice by InvoiceKey (read-only), optionally expanding related data (LineItems, Payments, Data).

NameTypeReqDescription
expandstringComma-separated related data to include: LineItems, Payments, Data
invoiceKeystringyesThe Karbon InvoiceKey

No output schema declared.

No examples provided.

get_note ~30

Get a single note by its NoteID.

NameTypeReqDescription
noteIdstringyesThe Karbon NoteID

No output schema declared.

No examples provided.

get_organization ~111

Get a single organization by OrganizationKey — or by your own UserDefinedIdentifier — optionally expanding related data (BusinessCards, AccountingDetail, ClientTeam, Contacts). Provide exactly one of organizationKey or userDefinedIdentifier.

NameTypeReqDescription
expandstringComma-separated related data to include: BusinessCards, AccountingDetail, ClientTeam, Contacts
organizationKeystringThe Karbon OrganizationKey
userDefinedIdentifierstringLook up by your own external ID instead of the OrganizationKey

No output schema declared.

No examples provided.

get_payment ~32

Get a single payment by PaymentKey (read-only).

NameTypeReqDescription
paymentKeystringyesThe Karbon PaymentKey

No output schema declared.

No examples provided.

get_team ~39

Get a single team by TeamKey, including its members (users and sub-teams).

NameTypeReqDescription
teamKeystringyesThe Karbon TeamKey

No output schema declared.

No examples provided.

get_tenant_settings ~47

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.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

get_time_entry ~41

Get a single individual time entry by its IndividualTimeEntryKey (read-only).

NameTypeReqDescription
timeEntryKeystringyesThe Karbon IndividualTimeEntryKey

No output schema declared.

No examples provided.

get_timesheet ~52

Get a single timesheet by TimesheetKey, optionally expanding TimeEntries.

NameTypeReqDescription
expandTimeEntriesbooleanInclude individual time entries
timesheetKeystringyesThe Karbon TimesheetKey

No output schema declared.

No examples provided.

get_user ~32

Get a single Karbon user by their UserId.

NameTypeReqDescription
userIdstringyesThe Karbon UserId

No output schema declared.

No examples provided.

get_work_item ~34

Get a single work item by WorkItemKey.

NameTypeReqDescription
workItemKeystringyesThe Karbon WorkItemKey

No output schema declared.

No examples provided.

get_work_schedule ~43

Get a recurring work schedule by WorkScheduleKey — the recurrence rules that automatically generate work items.

NameTypeReqDescription
workScheduleKeystringyesThe Karbon WorkScheduleKey

No output schema declared.

No examples provided.

get_work_template ~41

Get a single work template by WorkTemplateKey, including its task and section structure.

NameTypeReqDescription
workTemplateKeystringyesThe Karbon WorkTemplateKey

No output schema declared.

No examples provided.

list_client_groups ~157

List or search client groups in Karbon. Supports OData filtering, e.g. filter: "contains(FullName,'Smith Family')" or "UserDefinedIdentifier eq 'ABC123'".

NameTypeReqDescription
filterstringOData $filter expression, e.g. "contains(FullName,'Smith')" or "PrimaryStatus eq 'InProgress'". Operators: eq, ne, gt, ge, lt, le, and, or, contains().
orderbystringOData $orderby, e.g. "LastModifiedDateTime desc"
skipintegerNumber of results to skip, for pagination
topintegerMax results to return (1-100, default 100)

No output schema declared.

No examples provided.

list_contacts ~153

List or search person contacts in Karbon. Supports OData filtering, e.g. filter: "contains(FullName,'Smith')" or "ContactType eq 'Client'".

NameTypeReqDescription
filterstringOData $filter expression, e.g. "contains(FullName,'Smith')" or "PrimaryStatus eq 'InProgress'". Operators: eq, ne, gt, ge, lt, le, and, or, contains().
orderbystringOData $orderby, e.g. "LastModifiedDateTime desc"
skipintegerNumber of results to skip, for pagination
topintegerMax results to return (1-100, default 100)

No output schema declared.

No examples provided.

list_custom_fields ~54

List all custom field definitions for the Karbon tenant — field names, types (Text, Number, Date, Boolean, Colleague, ListSingleSelect, ListMultipleSelect), list options, and which entities they apply to.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

list_entity_files ~77

List the files attached to a work item, contact, or organization — name, size, mime type, created date, and a DownloadUrl usable with download_file. Download links expire 15 minutes after this call.

NameTypeReqDescription
entityKeystringyesThe key of the entity to list files for
entityTypestringyes

No output schema declared.

No examples provided.

list_invoices ~172

List invoices in Karbon (read-only). Supports OData filtering, e.g. filter: "InvoiceStatus eq 'AwaitingPayment'" or "TotalAmountDue gt 0". Statuses: Approved, AwaitingPayment, Paid, Exported, Voided.

NameTypeReqDescription
filterstringOData $filter expression, e.g. "contains(FullName,'Smith')" or "PrimaryStatus eq 'InProgress'". Operators: eq, ne, gt, ge, lt, le, and, or, contains().
orderbystringOData $orderby, e.g. "LastModifiedDateTime desc"
skipintegerNumber of results to skip, for pagination
topintegerMax results to return (1-100, default 100)

No output schema declared.

No examples provided.

list_organizations ~147

List or search organization contacts in Karbon. Supports OData filtering, e.g. filter: "contains(FullName,'Acme')".

NameTypeReqDescription
filterstringOData $filter expression, e.g. "contains(FullName,'Smith')" or "PrimaryStatus eq 'InProgress'". Operators: eq, ne, gt, ge, lt, le, and, or, contains().
orderbystringOData $orderby, e.g. "LastModifiedDateTime desc"
skipintegerNumber of results to skip, for pagination
topintegerMax results to return (1-100, default 100)

No output schema declared.

No examples provided.

list_payments ~65

List payments recorded against invoices in Karbon (read-only). Supports pagination only — the Payments endpoint does not accept OData filters.

NameTypeReqDescription
skipintegerNumber of results to skip, for pagination
topintegerMax results to return (1-100)

No output schema declared.

No examples provided.

list_teams ~61

List teams in Karbon (read-only). Supports OData filtering, e.g. filter: "contains(Name,'Tax')".

NameTypeReqDescription
filterstringOData $filter expression
skipinteger
topinteger

No output schema declared.

No examples provided.

list_time_entries ~138

List individual time entries (read-only). Useful for reporting on time logged against clients or work items.

NameTypeReqDescription
filterstringOData $filter expression, e.g. "contains(FullName,'Smith')" or "PrimaryStatus eq 'InProgress'". Operators: eq, ne, gt, ge, lt, le, and, or, contains().
orderbystringOData $orderby, e.g. "LastModifiedDateTime desc"
skipintegerNumber of results to skip, for pagination
topintegerMax results to return (1-100, default 100)

No output schema declared.

No examples provided.

list_timesheets ~147

List timesheets (read-only). Useful filters: "StartDate ge 2026-07-01", "UserKey eq '...'".

NameTypeReqDescription
filterstringOData $filter expression, e.g. "contains(FullName,'Smith')" or "PrimaryStatus eq 'InProgress'". Operators: eq, ne, gt, ge, lt, le, and, or, contains().
orderbystringOData $orderby, e.g. "LastModifiedDateTime desc"
skipintegerNumber of results to skip, for pagination
topintegerMax results to return (1-100, default 100)

No output schema declared.

No examples provided.

list_users ~129

List Karbon users (team members) on this account.

NameTypeReqDescription
filterstringOData $filter expression, e.g. "contains(FullName,'Smith')" or "PrimaryStatus eq 'InProgress'". Operators: eq, ne, gt, ge, lt, le, and, or, contains().
orderbystringOData $orderby, e.g. "LastModifiedDateTime desc"
skipintegerNumber of results to skip, for pagination
topintegerMax results to return (1-100, default 100)

No output schema declared.

No examples provided.

list_work_items ~186

List or search work items (jobs/engagements) in Karbon. Useful filters: "PrimaryStatus eq 'InProgress'", "AssigneeEmailAddress eq '[email protected]'", "DueDate lt 2026-08-01". PrimaryStatus values: Planned, ReadyToStart, InProgress, Waiting, Completed.

NameTypeReqDescription
filterstringOData $filter expression, e.g. "contains(FullName,'Smith')" or "PrimaryStatus eq 'InProgress'". Operators: eq, ne, gt, ge, lt, le, and, or, contains().
orderbystringOData $orderby, e.g. "LastModifiedDateTime desc"
skipintegerNumber of results to skip, for pagination
topintegerMax results to return (1-100, default 100)

No output schema declared.

No examples provided.

list_work_templates ~141

List work templates available on this account. Use a WorkTemplateKey with create_work_item to create templated work.

NameTypeReqDescription
filterstringOData $filter expression, e.g. "contains(FullName,'Smith')" or "PrimaryStatus eq 'InProgress'". Operators: eq, ne, gt, ge, lt, le, and, or, contains().
orderbystringOData $orderby, e.g. "LastModifiedDateTime desc"
skipintegerNumber of results to skip, for pagination
topintegerMax results to return (1-100, default 100)

No output schema declared.

No examples provided.

remove_team_member ~65

Remove a user from a team by their UserKey. Team membership can affect work visibility and assignment — confirm with the user before changing it.

NameTypeReqDescription
UserKeystringyesUserKey of the user to remove
teamKeystringyesThe Karbon TeamKey

No output schema declared.

No examples provided.

set_custom_field_values ~97

Set custom field values on an entity (contact, organization, or client group). Use list_custom_fields for the available definitions and get_custom_field_values to see what's currently set. Values are always passed as an array of strings, even for single values.

NameTypeReqDescription
CustomFieldValuesarrayyesThe custom field values to set on the entity
entityKeystringyesThe ContactKey, OrganizationKey, or ClientGroupKey

No output schema declared.

No examples provided.

update_business_card ~226

Update a business card (full replace via PUT) — this is how you change a contact's, organization's, or client group's email addresses, phone numbers, and addresses. Fetch the card first with get_business_card and send back the complete card with your changes, since omitted fields are cleared.

NameTypeReqDescription
Addressesarray
EmailAddressesarray
EntityKeystringyesThe key of the contact, organization, or client group this card belongs to
EntityTypestringyesThe type of entity this business card belongs to
FacebookLinkstring
IsPrimaryCardboolean
LinkedInLinkstring
OrganizationKeystringFor a contact's card: the organization the contact works at
PhoneNumbersarray
RoleOrTitlestring
SkypeLinkstring
TwitterLinkstring
WebSitesarray
businessCardKeystringyesThe Karbon BusinessCardKey to update

No output schema declared.

No examples provided.

update_client_group ~114

Update fields on an existing client group (partial update via PATCH). Only include the fields you want to change.

NameTypeReqDescription
ClientManagerstring
ClientOwnerstring
ContactTypestring
EntityDescriptionobject
FullNamestring
PrimaryContactstring
RestrictionLevelstring
UserDefinedIdentifierstring
clientGroupKeystringyesThe Karbon ClientGroupKey to update

No output schema declared.

No examples provided.

update_contact ~127

Update fields on an existing person contact (partial update via PATCH). Only include the fields you want to change.

NameTypeReqDescription
ClientManagerstring
ClientOwnerstring
ContactTypestring
FirstNamestring
LastNamestring
MiddleNamestring
PreferredNamestring
RestrictionLevelstring
Salutationstring
UserDefinedIdentifierstring
contactKeystringyesThe Karbon ContactKey to update

No output schema declared.

No examples provided.

update_organization ~95

Update fields on an existing organization (partial update via PATCH). Only include the fields you want to change.

NameTypeReqDescription
ClientManagerstring
ClientOwnerstring
ContactTypestring
FullNamestring
RestrictionLevelstring
UserDefinedIdentifierstring
organizationKeystringyesThe Karbon OrganizationKey to update

No output schema declared.

No examples provided.

update_work_item ~120

Update fields on an existing work item (partial update via PATCH). Only include the fields you want to change.

NameTypeReqDescription
AssigneeEmailAddressstringMust be an existing Karbon user's email
DeadlineDatestring
Descriptionstring
DueDatestring
StartDatestringISO 8601 date or date-time
Titlestring
WorkTypestring
workItemKeystringyesThe Karbon WorkItemKey to update

No output schema declared.

No examples provided.

update_work_schedule ~118

Update a work schedule (partial via PATCH). The API only supports changing the end date and the assignee here. Note: changing AssigneeUserKey reassigns every not-yet-started work item the schedule has generated — confirm with the user first.

NameTypeReqDescription
AssigneeUserKeystring
ScheduleEndDatestring|nullISO 8601 date to stop the schedule; pass null to clear the end date (run forever)
workScheduleKeystringyesThe Karbon WorkScheduleKey to update

No output schema declared.

No examples provided.

upload_file ~297

Upload a file to Karbon and attach it to a work item, contact, organization, or client group (at least one key is required). SIZE LIMITS: keep uploads small — Karbon rejects oversized uploads, and this server reads the whole file into memory. Prefer filePath (a path on the machine running this MCP server) whenever possible; only use contentBase64 for small files (roughly under 1 MB), because base64 inflates data ~33% and large payloads can exceed the AI client's message limits or be truncated mid-transfer. If a file seems large (tens of MB or more), tell the user to upload it through Karbon's own UI instead. SECURITY: only upload files the user explicitly pointed you to. Never upload configuration files, credential stores, environment files, keys, or anything the user has not named — uploading puts the file's contents in the Karbon tenant.

NameTypeReqDescription
clientGroupKeystring
contactKeystring
contentBase64stringBase64-encoded file content — small files only; requires fileName
fileNamestringFile name including extension. Required with contentBase64; defaults to the filePath basename otherwise.
filePathstringAbsolute path of the file on the machine running this MCP server (preferred)
organizationKeystring
workItemKeystring

No output schema declared.

No examples provided.