{"name":"Chopwood","description":"Work with your permitted Chopwood contacts, companies, projects, fundraising leads and personal tasks. Google OAuth is required.","homepage":"https://chopwood.com/mcp","serverInfo":{"name":"chopwood","version":"2cdf084"},"transport":{"type":"streamable-http","url":"https://mcp.chopwood.com/mcp"},"authentication":{"required":true,"type":"oauth2","authorization_server":"https://chopwood.com"},"tools":[{"name":"get_my_context","title":"Check my Chopwood profile","description":"Identify the Google identity, existing Chopwood profile, home workspace and permitted operations for this connection. Start here before writing. Discover existing contact/company custom field keys and types, paging with field_offset when needed. Personal tasks belong to this profile; team titles do not grant extra access.","readOnly":true,"group":"Getting started"},{"name":"search_records","title":"Search Chopwood records","description":"Find contacts, companies, projects, pipelines and your personal tasks by name or contact email. Results distinguish records with stable IDs, links and pipeline resource keys. Never choose an ambiguous result for a write. Truncated results require a narrower search or a paginated list tool.","readOnly":true,"group":"Getting started"},{"name":"list_contacts","title":"List contacts","description":"List live contacts in your home workspace. Search name, primary email, company, title, notes or tags. Results are bounded and show continuation.","readOnly":true,"group":"Contacts"},{"name":"get_contact","title":"Get contact","description":"Get a bounded contact overview with exact field/custom/email/tag continuations. Follow returned next_request for full long values and retain revision/content hash. Login identities are separate.","readOnly":true,"group":"Contacts"},{"name":"create_contact","title":"Create contact","description":"Create one contact after checking existing email and name matches. Specify company_id explicitly to associate an existing company; never creates a company implicitly.","readOnly":false,"group":"Contacts"},{"name":"update_contact","title":"Update contact","description":"Edit one contact with its current expected_revision. Sets primary email explicitly; merges custom_edits while preserving other values. No company creation or merge.","readOnly":false,"group":"Contacts"},{"name":"set_contact_email","title":"Set contact alternate email","description":"Add or remove one alternate CRM email. Does not change primary email or Google login identities. Removing a primary address is rejected.","readOnly":false,"group":"Contacts"},{"name":"set_contact_tag","title":"Set contact tag","description":"Attach or detach one case-insensitive tag on a contact. Adding a new tag name creates that tag only; removing never deletes the tag itself.","readOnly":false,"group":"Contacts"},{"name":"list_companies","title":"List companies","description":"List live companies in your home workspace, optionally matching a name/domain or classification.","readOnly":true,"group":"Companies"},{"name":"get_company","title":"Get company","description":"Get a bounded company overview with exact field/custom/link/contact/note continuations. Follow returned next_request for full long values and retain revision/content hash.","readOnly":true,"group":"Companies"},{"name":"create_company","title":"Create company","description":"Create one company after checking exact name/domain matches. Use an existing company or confirm a distinct company before proceeding past a duplicate warning.","readOnly":false,"group":"Companies"},{"name":"update_company","title":"Update company","description":"Edit one company with its current revision. Existing custom_edits merge without replacing other custom values.","readOnly":false,"group":"Companies"},{"name":"add_company_note","title":"Add company note","description":"Append one timestamped company note with your authenticated attribution. The operation_id prevents duplicate notes after a retry.","readOnly":false,"group":"Companies"},{"name":"set_company_link","title":"Set company link","description":"Add one labeled HTTP(S) material link, or remove a link by its exact link_id. No remote content is fetched.","readOnly":false,"group":"Companies"},{"name":"list_tasks","title":"List my tasks","description":"List only your own active/completed personal tasks. No assignee, due date, priority or project link exists in this version.","readOnly":true,"group":"Personal tasks"},{"name":"get_task","title":"Get my task","description":"Get one task you own, its revision and bounded existing links. Tasks owned by anyone else are unavailable.","readOnly":true,"group":"Personal tasks"},{"name":"create_task","title":"Create my task","description":"Create one personal task. Title only; links can be added separately. Checks exact title duplicates and preserves the current 500-task limit.","readOnly":false,"group":"Personal tasks"},{"name":"update_task","title":"Update my task","description":"Rename, complete or reopen one task you own. The current expected_revision is required; both title and completion may change atomically.","readOnly":false,"group":"Personal tasks"},{"name":"set_task_link","title":"Set my task link","description":"Add or remove one link on your task. Adds support an exact home-workspace contact, company, or accessible home pipeline. No project, email-thread or foreign-workspace links.","readOnly":false,"group":"Personal tasks"},{"name":"list_pipelines","title":"List accessible pipelines","description":"List currently accessible pipelines, their types and stable resource keys. Follow next_cursor until complete; sharing does not grant source CRM access.","readOnly":true,"group":"Pipelines"},{"name":"get_pipeline","title":"Read a pipeline and its field definitions","description":"Get pipeline details, stages and editable project property definitions. Fundraising amounts and targets use whole USD dollars.","readOnly":true,"group":"Pipelines"},{"name":"list_projects","title":"List projects in a pipeline","description":"Search live projects in one authorized pipeline. Results are ordered by record ID; follow next_cursor for all matches.","readOnly":true,"group":"Projects"},{"name":"get_project","title":"Read a project","description":"Read a bounded overview with explicit content and collection completeness. Follow next_request for exact long fields, custom values, definitions and relationship pages. section=\"field\" returns text or JSON chunks; concatenate field text in offset order (UTF-16 units), then decode JSON when encoding=\"json\". Retain expected_revision and expected_content_hash from next_request. Limits: overview 10 items per section, collections 25 items, field chunks 20000 code units. Each page rechecks access.","readOnly":true,"group":"Projects"},{"name":"create_project","title":"Create a project","description":"Create one project in an authorized project pipeline. Business development starts at Lead. Events retain native schedule rules. Use update_project for contract values/custom properties after creating. Reuse operation_id only for an exact retry.","readOnly":false,"group":"Projects"},{"name":"update_project","title":"Update a project","description":"Edit one project with its expected_revision. Native stages, event schedules and configured custom property definitions remain authoritative. Contract values are USD dollars with at most two decimals.","readOnly":false,"group":"Projects"},{"name":"list_project_activity","title":"Read a project activity feed","description":"Read the authorized project feed with notes, stage changes and existing linked activity summaries. Does not expand mailbox message bodies.","readOnly":true,"group":"Projects"},{"name":"add_project_note","title":"Add a project note","description":"Append one note with your identity recorded as author. Reuse the operation_id for an exact retry. Requires the project expected_revision.","readOnly":false,"group":"Projects"},{"name":"set_project_relationship","title":"Link or unlink a project record","description":"Add or remove one existing contact/company association. Source CRM access is required to add; existing visible associations can be removed. Does not move or modify the underlying contact/company.","readOnly":false,"group":"Projects"},{"name":"set_project_link","title":"Add or remove a project link","description":"Add an HTTP(S) link or remove an existing link by ID. The server stores the URL without fetching it.","readOnly":false,"group":"Projects"},{"name":"list_fundraising_leads","title":"Search fundraising leads","description":"Read investor leads in one authorized fundraising pipeline. Amounts are whole USD dollars. Find a contact first before creating a lead.","readOnly":true,"group":"Fundraising leads"},{"name":"get_fundraising_lead","title":"Read a fundraising lead","description":"Read one investor lead and its revision. Amount is recorded whole USD dollars; next_step_due is a calendar date.","readOnly":true,"group":"Fundraising leads"},{"name":"create_fundraising_lead","title":"Create a fundraising lead","description":"Add one existing contact to an authorized fundraising pipeline. Duplicate contact/raise pairs are rejected without overwriting the existing lead. Amounts are whole USD dollars.","readOnly":false,"group":"Fundraising leads"},{"name":"update_fundraising_lead","title":"Update a fundraising lead","description":"Edit one lead using expected_revision. Stale writes fail instead of overwriting a web or AI edit. Amount is whole USD dollars; null clears a value.","readOnly":false,"group":"Fundraising leads"},{"name":"run_report","title":"Run a scoped Chopwood report","description":"Choose a named report preset over authorized records. Totals cover the full permitted filtered set; only drill-down rows paginate. Scope is home CRM/personal tasks or up to 20 accessible pipelines. Never accepts SQL. Read semantics and unknown counts before interpreting money.","readOnly":true,"group":"Reports"}],"documentation":"https://chopwood.com/mcp"}