MCP.Market

Karbon MCP server

by Mad-Man-Dan·io.github.Mad-Man-Dan/karbon-mcp-server·v0.2.4

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

B78/100grade B
What users say
No reviews yet
Be the first
Safety scan
B78/100

full report

Adoption
New

0 stars59 downloads/wk

Reviews

Write one

Nobody has reviewed Karbon yet.

If you have run it, two minutes of your experience saves the next person an afternoon.

Karbon tools (53, 18 write)

write = sends, deletes, buys or posts

Read from the package source without running it. The installed server may list more.

  • add_team_members

    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.

  • create_client_groupwrite action

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

  • create_contactwrite action

    Create a new person contact in Karbon.

  • create_custom_fieldwrite action

    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.

  • create_manual_paymentwrite action

    Record a manual payment against an invoice. The amount must be greater than 0 and no more than the invoice's outstanding balance. This creates a financial record — confirm the details with the user before calling.

  • create_notewrite action

    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.

  • create_organizationwrite action

    Create a new organization contact in Karbon.

  • create_work_itemwrite action

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

  • create_work_schedulewrite action

    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.

  • delete_custom_fieldwrite action

    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.

  • delete_manual_paymentwrite action

    Delete a manual payment by its ManualPaymentKey. This removes a financial record — confirm with the user before calling. Only payments created manually can be deleted.

  • download_file

    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.

  • get_business_card

    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.

  • get_client_group

    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.

  • get_comment

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

  • get_contact

    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.

  • get_custom_field_values

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

  • get_estimate_summary

    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.

  • get_invoice

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

  • get_note

    Get a single note by its NoteID.

  • get_organization

    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.

  • get_payment

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

  • get_team

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

  • get_tenant_settings

    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.

  • get_time_entry

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

  • get_timesheet

    Get a single timesheet by TimesheetKey, optionally expanding TimeEntries.

  • get_user

    Get a single Karbon user by their UserId.

  • get_work_item

    Get a single work item by WorkItemKey.

  • get_work_schedule

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

  • get_work_template

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

  • list_client_groups

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

  • list_contacts

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

  • list_custom_fields

    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.

  • list_entity_files

    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.

  • list_invoices

    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.

  • list_organizations

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

  • list_payments

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

  • list_teams

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

  • list_time_entries

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

  • list_timesheets

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

  • list_users

    List Karbon users (team members) on this account.

  • list_work_items

    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.

  • list_work_templates

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

  • remove_team_memberwrite action

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

  • reverse_manual_payment

    Reverse a manual payment, restoring the amount to the invoice's balance. This creates a reversal record rather than deleting the payment — confirm with the user before calling.

  • set_custom_field_values

    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.

  • update_business_cardwrite action

    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.

  • update_client_groupwrite action

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

  • update_contactwrite action

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

  • update_organizationwrite action

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

  • update_work_itemwrite action

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

  • update_work_schedulewrite action

    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.

  • upload_filewrite action

    Upload a file to Karbon and attach it to a work item, contact, organization, or client group (at least one key is required).

Public scan report

scanner v0.1.9 · 2026-09-25 · same rubric, same numbers if you re-run it

no findings
  • Code scan22 source files scanned25/25
  • –Live reliabilityno gateway calls yet and no remote to proben/a
  • –Tool poisoningtools not inspected (local package is not executed); not countedn/a
  • Auth qualitystatic API keys via environment variables6/15
  • Maintenancelast push 72 days ago12/15
  • Maintainer identityregistry namespace matches repository owner; GitHub account older than a year8/10
Overall 78/100. Components that don't apply are left out of the denominator. Any critical finding is an F.RubricAppeal a findingJSON

How Karbon compares

Against every graded MCP server, from our own scans and uptime checks. Updated after each scan run.

Safety score
78/100
higher than 57% of 48,255 servers
Tools
53
the typical server has 7
Tools that change things
34%
typical: 0%. Fewer write tools means less an agent can break
Downloads a week
59
more than 48% of 12,191 servers with a package

What its tools let an agent do: 33 read · 10 create · 7 change · 3 delete

Install Karbon in Claude Code, Cursor or VS Code

Runs npx -y karbon-mcp-server on your machine. Read the scan report first; the gateway never runs local packages.

claude mcp add karbon-mcp-server -- npx -y karbon-mcp-server
Add to Cursor

What the publisher says

From the Karbon repository's README, as published. We do not edit it. Read it on GitHub

Karbon MCP Server

🚧 Early release — this project is brand new and we're actively making updates over the next few days. Things may change quickly; pin a version if you need stability, and check back soon.

An unofficial Model Context Protocol server for Karbon practice management. Connect Claude Code, Claude Desktop, GitHub Copilot, or any MCP-compatible client to your Karbon instance and work with contacts, work items, time, invoices, payments, files, and more using natural language.

Disclaimer: This is a community project and is not affiliated with or endorsed by Karbon. Use at your own risk.

Features

getcontact, getorganization, and getclientgroup can also look records up by your own UserDefinedIdentifier instead of the Karbon key — handy if you sync IDs from your tax software.

All list tools support OData filtering ($filter), ordering ($orderby), and pagination ($top/$skip) — so you can ask things like "show my in-progress work items due this month" and the AI can express that as a precise query.

Prerequisites

Shortened. The full README is on GitHub.

Nothing above is checked by us. What we check is on the safety report.

Karbon: common questions

Is Karbon MCP server safe?
Mostly: it is graded B (78/100). Read the Karbon safety report
How do I install Karbon?
It runs on your machine. Copy the Claude Code, Cursor, VS Code or Claude Desktop config from the install section.
Does Karbon need an API key?
Yes. The registry entry asks for KARBON_BEARER_TOKEN, KARBON_ACCESS_KEY.
Is Karbon maintained?
The last commit was 111 days ago (2026-07-16). The latest release is v0.2.4.
How does Karbon compare with other MCP servers?
safety score 78/100 (higher than 57% of 48,255 servers); tools 53 (the typical server has 7); tools that change things 34% (typical: 0%. Fewer write tools means less an agent can break). Full comparison.