Coherence XRM
Official@coherenceos/mcp-server
MCP (Model Context Protocol) server that exposes Coherence as tools for Claude, Cursor, Cline, and other MCP-compatible clients.
The headline: chat_with_agent — send a message to your Coherence agent (Nash) from Claude Desktop and it can draft emails, create reminders, update records, post to social, create landing pages, and more, all under your workspace's approval rules.
Quickstart
1. Create an API key
In Coherence, go to Settings → API Keys → Create new key. Copy the sk_live_… value — it's only shown once. The Coherence UI will hand you a ready-to-paste JSON snippet that you can drop straight into your MCP client config.
2. Add to your MCP client
Claude Desktop (~/Library/Application Support/Claude/claude_desktop_config.json on macOS, %APPDATA%\Claude\claude_desktop_config.json on Windows):
{
"mcpServers": {
"coherence": {
"command": "npx",
"args": ["-y", "@coherenceos/mcp-server"],
"env": {
"COHERENCE_API_URL": "https://api.getcoherence.io/v1",
"COHERENCE_API_TOKEN": "sk_live_..."
}
}
}
}Cursor / Cline / Continue / Windsurf: same JSON, dropped into each tool's MCP settings file.
3. Talk to your workspace
Restart your MCP client, then try:
"Ask my Coherence agent to draft a follow-up email to the leads I created this week."
"List my open deals over $50k."
"Create a contact for Jane Doe at Acme Corp, then remind me to follow up next Tuesday."
Related MCP server: paperclip-mcp
Available tools
Tool | What it does |
| Send a message to a Coherence agent; the agent uses its own toolset (email, reminders, calendar, social, landing pages, approvals, etc.) and returns its response |
| List CRM modules in the workspace |
| List fields on a module — useful before creating/updating records |
| List records in a module with search + pagination |
| Get a single record by ID |
| Create a new record |
| Update a record's fields |
| Soft-delete a record (recoverable from trash) |
| List blog articles, LinkedIn posts, emails, etc. |
| Get a single outreach item, including its MDX content |
| Create a new outreach item |
| Update the MDX body of an outreach item |
| Update outreach metadata (title, status, etc.) |
For everything else — calendar events, sending email, posting to social, creating landing pages, managing approvals — use chat_with_agent. The agent has the full toolset.
Environment variables
Variable | Required | Default | Description |
| Yes | — | API key ( |
| No |
| API base URL |
Scopes
When you create an API key in Coherence you can pick scopes. If you tick none, the key inherits your full user permissions (the default). If you tick some, the key is restricted to those:
records:read,records:write— module recordscollab:read,collab:write— Collab documentsagents:read,agents:write— agents andchat_with_agentworkspace:read— modules, fields, workspace metadata
Approval gates (sendEmail, postToSocial, etc.) are enforced inside the Coherence platform regardless of which scopes a key holds — an API key cannot bypass them.
Links
Coherence: https://getcoherence.io
MCP landing page: https://getcoherence.io/mcp
Docs & quickstart: https://getcoherence.io/docs/mcp/quickstart
API docs (OpenAPI): https://api.getcoherence.io/v1/openapi.json
Available Tools
13 toolschat_with_agentA
Send a message to a Coherence agent (Nash by default) and get its response. The agent has access to its own toolset — sending email, creating reminders, drafting documents, posting to social, creating landing pages, and more — and runs them under your workspace's approval rules. Use this for action-oriented requests that the agent should execute: 'draft a follow-up email to the leads I created yesterday', 'remind me about the Acme renewal next Friday', 'summarize this week's pipeline movement.' For read-only data lookups (list records, get a record, etc.), prefer the dedicated tools; they're faster than going through the agent loop.
| Name | Required | Description | Default |
|---|---|---|---|
| message | Yes | What you want the agent to do, in natural language. | |
| agentId | No | Optional. UUID of a specific agent to talk to (e.g. a custom agent). When omitted, uses the default Nash agent. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description bears full responsibility. It discloses that the agent has access to its own toolset and runs tasks under workspace approval rules. While it mentions the agent is slower for read queries, it doesn't detail error handling, latency specifics, or potential destructive actions, but overall provides sufficient behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Concise, well-structured description. Front-loaded with the core purpose, followed by examples and usage guidelines. Every sentence serves a purpose without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (agent with broad capabilities) and no output schema, the description adequately covers when to use and the agent's behavior. However, it could mention the format of the response (e.g., plain text). Still, it is largely complete for an AI agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for both parameters. The description adds value: for 'message', it emphasizes action-oriented requests; for 'agentId', it clarifies optionality and the default agent. This goes beyond the schema's minimal descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('send a message'), resource ('Coherence agent'), and outcome ('get its response'). It specifies the default agent (Nash) and distinguishes from sibling tools by noting that read-only lookups should use dedicated tools instead.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use ('action-oriented requests') and when not to use ('For read-only data lookups... prefer the dedicated tools'). Provides concrete examples and explains the agent's capabilities, giving clear guidance on appropriate context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_outreach_itemB
Create a new outreach content item (blog article, LinkedIn post, email). Returns the created item ID.
| Name | Required | Description | Default |
|---|---|---|---|
| type | Yes | Content type | |
| title | Yes | Title of the content item | |
| content | No | MDX/markdown content body | |
| status | No | Initial status (default: draft) | draft |
| socialConnectionId | No | SocialConnectionId — which connected social account to post as | |
| scheduledFor | No | ISO date-time for scheduled publication (e.g. '2026-04-01T14:00:00Z') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits. It only says 'creates' and 'returns ID', but omits potential side effects, permissions required, error conditions, or whether the action is destructive. Minimal transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that efficiently conveys the core purpose and return value. No unnecessary words or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description mentions the return (ID) but does not elaborate on required fields, validation rules, or relationship to other outreach tools. It is minimally complete but lacks depth for complex usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% coverage with descriptions for all 6 parameters. The description adds no additional parameter-level meaning beyond 'returns created item ID', which is generic. Baseline 3 is appropriate as schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb (create), the resource (outreach content item), and provides specific examples (blog article, LinkedIn post, email). It distinguishes from sibling tools that get, update, list, or delete such items.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus siblings like create_record, or what prerequisites (e.g., account setup) are needed. The context for choosing this over alternatives is missing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_recordB
Create a new record in a module. Provide displayName and a fields object with field values keyed by field ID or label.
| Name | Required | Description | Default |
|---|---|---|---|
| moduleSlug | Yes | Module slug | |
| displayName | Yes | Display name for the record | |
| fields | No | Field values keyed by field ID | |
| ownerUserId | No | Owner user ID (optional) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description clearly indicates a write operation ('Create'), but with no annotations, the burden falls on the description. It lacks details on idempotency, side effects, permissions, or response format, which are not disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no wasted words. It efficiently communicates the tool's action and key inputs.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite the moderate complexity (4 params, nested fields), the description is minimal. It fails to explain the return value, ownerUserId purpose, or behavior beyond creation. The schema covers each parameter, but the description lacks contextual completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description adds some value by noting that fields keys are field IDs or labels, but it doesn't significantly augment the schema's parameter descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool creates a new record in a module, specifying the key parameters (displayName and fields). This distinguishes it from sibling tools like update_record or delete_record, which modify or remove records.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It does not mention when not to use it, prerequisites, or comparisons with sibling tools like update_record.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_recordA
Soft-delete a record (moves to trash). Can be restored later.
| Name | Required | Description | Default |
|---|---|---|---|
| moduleSlug | Yes | Module slug | |
| recordId | Yes | Record UUID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It discloses the soft-delete behavior and restorability, but omits potential behavioral traits like permission requirements or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with two sentences, no redundant information, and front-loads the key action 'Soft-delete'.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple soft-delete operation, the description covers the essential behavior (moves to trash, restorable). With no output schema, the return value is not explained, but the core functionality is sufficiently described.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the parameters are already documented. The description adds no additional meaning beyond the schema, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Soft-delete a record (moves to trash)', specifying the action and resource. It distinguishes from siblings like update_record and create_record by emphasizing the soft-delete nature.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context by indicating it's a soft-delete that can be restored later. However, it does not explicitly state when not to use it or compare to alternatives like permanent deletion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_outreach_itemA
Get a single outreach item by ID, including its full content (MDX).
| Name | Required | Description | Default |
|---|---|---|---|
| itemId | Yes | Outreach item UUID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries burden. It mentions the output includes MDX content but does not disclose side effects (none expected for a read), error behavior, permissions, or rate limits. Adequate but not detailed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence of 14 words, front-loaded with verb and resource. No redundancy or filler. Efficient and clear.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description hints at response content ('full content (MDX)'). However, it could mention other typical fields (e.g., metadata). Still, for a simple single-parameter get, it is largely complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one parameter 'itemId' which is described in the schema as 'Outreach item UUID'. The description adds no extra meaning; schema coverage is 100%, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get', the resource 'outreach item', and specifies that it returns full MDX content. It distinguishes itself from sibling tools like 'list_outreach_items' (which lists) and 'update_outreach_item' (which modifies).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use for retrieving a specific item by ID, but does not explicitly state when to use this tool over alternatives like 'list_outreach_items' or 'get_record'. No guidance on prerequisites or context is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_recordA
Get a single record by ID from a module.
| Name | Required | Description | Default |
|---|---|---|---|
| moduleSlug | Yes | Module slug | |
| recordId | Yes | Record UUID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description bears full burden. It indicates a read operation but does not disclose whether the record is guaranteed to exist, permission requirements, or side effects. Acceptable for a simple get but missing details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise single sentence with no wasted words. Front-loaded with verb and resource.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description could mention what is returned (e.g., the record fields). It is complete enough for a trivial get operation but lacks explicit return behavior and error handling.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the input schema documents both parameters. The description adds no additional semantic value beyond what 'by ID' implies. Baseline 3 applies as schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action 'Get', the resource 'single record', and the method 'by ID'. It distinguishes from sibling tools like list_records (returns multiple), create_record, and delete_record.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives. The description does not mention when not to use it or provide context for selecting this over list_records or other get-like tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_module_fieldsA
List all fields defined on a module. Useful for understanding what data a module stores before creating/updating records.
| Name | Required | Description | Default |
|---|---|---|---|
| moduleSlug | Yes | Module slug (e.g. 'contacts') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears full responsibility for behavioral disclosure. It implies read-only behavior by stating 'list', but does not explicitly mention safety, idempotency, pagination, or other traits. For a simple listing tool, this is adequate but not thorough.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences: one stating the action and one explaining the use case. It is concise, front-loaded, and contains no unnecessary words or redundancies.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one required parameter, no output schema, no nested objects), the description fully covers what the agent needs to know to invoke it correctly. It explains what it does and when to use it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter (moduleSlug) has a schema description that covers its purpose. The tool description does not add extra meaning or constraints beyond the schema. With 100% schema coverage, the baseline is 3, and no additional value is provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'List all fields defined on a module' with a specific verb and resource, distinguishing it from sibling tools like list_modules (lists modules) and list_records (lists records). The additional context about being useful before create/update operations reinforces the purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description advises using this tool before creating or updating records to understand module structure, which is clear context. It does not explicitly list when not to use it or name alternatives, but the sibling tools and purpose implicitly guide the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_modulesA
List all CRM modules (e.g. Contacts, Deals, Companies) in the workspace. Returns module names, slugs, and IDs.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description indicates it returns data but does not explicitly confirm read-only behavior or lack of side effects. For a simple list operation, this is adequate but lacks explicit safety disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with purpose, no redundant information. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a parameterless tool returning a simple list, description fully covers purpose, return type, and examples. No output schema needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist, so baseline is 4. Description adds value by specifying return fields (names, slugs, IDs), which helps the agent understand output beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the verb 'List', resource 'CRM modules', and provides examples (Contacts, Deals, Companies). Differentiates from sibling tools like list_records and list_module_fields by specifying it returns modules themselves.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies usage for retrieving workspace modules, but does not explicitly state when to use this tool versus alternatives like list_records or list_module_fields. No mention of prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_outreach_itemsB
List outreach content items (blog articles, LinkedIn posts, emails). Filter by type and status.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | Filter by content type | |
| status | No | Filter by status | |
| page | No | Page number | |
| pageSize | No | Items per page | |
| search | No | Search by title |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description does not disclose read-only nature, pagination behavior, or any side effects. For a listing tool, minimal behavioral context is given.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence that is concise and front-loaded with the key action and resource. No superfluous words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema; description does not mention return format, pagination, or ordering. For a paginated list tool, this is insufficient for an agent to fully understand the response.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema provides 100% coverage with descriptions for all parameters. Description adds no additional meaning beyond 'Filter by type and status', which is already in schema. Baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it lists outreach items and specifies sub-types (blog articles, LinkedIn posts, emails). It distinguishes from sibling tools like get_outreach_item (single) and create_outreach_item.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies usage for listing with filters, but no explicit when-to-use vs alternatives like search or pagination details. No exclusions mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_recordsC
List records in a module. Use the module slug (e.g. 'contacts', 'deals'). Supports pagination and search.
| Name | Required | Description | Default |
|---|---|---|---|
| moduleSlug | Yes | Module slug (e.g. 'contacts') | |
| page | No | Page number (1-indexed) | |
| pageSize | No | Records per page | |
| search | No | Search query to filter records | |
| sortField | No | Field to sort by | |
| sortDirection | No | Sort direction |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose behavioral traits such as being read-only, rate limits, or side effects. It only mentions supported features, lacking transparency about what happens if module slug is invalid or pagination limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences, front-loaded with the primary action. No redundant information; every sentence adds value. Efficient and clear.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given six parameters and no output schema, the description lacks completeness. It omits response structure, sorting behavior, default pagination values, and error handling. For a tool with significant parameterization, additional context is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. Description mentions pagination and search, grouping parameters, but adds no new semantic meaning beyond the schema's individual descriptions. No additional context for sortField or sortDirection.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists records in a module, using a verb and resource. It specifies the required module slug and mentions pagination and search, but doesn't explicitly differentiate from sibling tools like get_record or list_module_fields.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool over alternatives. It does not mention that get_record is for single records or list_module_fields for field metadata. The description only states what the tool does, not context for selecting it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_outreach_bodyA
Update the content body of an outreach item (blog article, LinkedIn post, etc). Provide the full MDX content.
| Name | Required | Description | Default |
|---|---|---|---|
| itemId | Yes | Outreach item UUID | |
| contentMdx | Yes | Full MDX/markdown content for the item |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It states 'Update' (mutation) and 'Provide the full MDX content' (overwrite), but lacks details on side effects, validation, or constraints. For a mutation tool with no annotations, this is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that is direct and efficient, containing no extraneous information. Every word contributes to clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (2 parameters, no output schema), the description is adequate but could mention what the updated tool returns (e.g., confirmation or updated object). This omission limits completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the description adds little beyond the schema's parameter descriptions (e.g., 'Full MDX/markdown content' is repeated). Baseline 3 is appropriate as the schema already documents both parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the action (update), the resource (content body of an outreach item), and provides examples (blog article, LinkedIn post). It distinguishes from sibling tools like update_outreach_item, which likely updates other fields.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description says 'Provide the full MDX content,' implying a complete replacement, but it does not explicitly state when to use this tool versus alternatives like update_outreach_item. No when-not or alternative instructions are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_outreach_itemB
Update metadata on an outreach item (title, status, etc).
| Name | Required | Description | Default |
|---|---|---|---|
| itemId | Yes | Outreach item UUID | |
| title | No | New title | |
| status | No | New status |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. The description indicates mutation ('update') but omits details on reversibility, required permissions (e.g., ownership), error handling (e.g., item not found), or side effects. Insufficient for a destructive operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence of 9 words, front-loading the purpose. No wasted words, but could benefit from slightly more detail on scope (e.g., which fields are metadata). Still efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, so agent has no idea what the response contains. Lacks information about validation (e.g., allowed status transitions), error conditions, or whether the update is partial or full. For a mutation tool with 3 parameters, this is incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already describes parameters. The description adds minimal context by listing 'title, status, etc' as examples of metadata fields, but does not clarify the 'etc' or provide additional semantics beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states 'update metadata on an outreach item' with explicit examples of updatable fields (title, status). This distinguishes it from sibling tools like update_outreach_body (body updates) and update_record (generic).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies usage for updating metadata fields like title and status, but does not explicitly state when to use this tool versus alternatives like update_outreach_body or create_outreach_item. No prerequisites or exclusion criteria provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_recordC
Update an existing record's fields or display name.
| Name | Required | Description | Default |
|---|---|---|---|
| moduleSlug | Yes | Module slug | |
| recordId | Yes | Record UUID | |
| displayName | No | New display name | |
| fields | No | Field values to update, keyed by field ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, and the description does not disclose behavioral traits such as whether the operation is destructive, required permissions, or side effects. For a mutation tool, more transparency is expected.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that front-loads the core action and resource. It avoids unnecessary words, though it could be slightly expanded without losing brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, no annotations, and a relatively simple mutation tool, the description lacks completeness. It does not explain return values, error handling, or prerequisites (e.g., does record need to exist?).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides full description coverage (100%) for all parameters. The description adds 'fields or display name' which aligns with schema but does not significantly deepen understanding beyond what the schema already conveys.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly specifies the action ('update') and resource ('existing record'), and mentions specific updatable aspects (fields or display name). This distinguishes it from sibling tools like create_record and delete_record.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives (e.g., update_outreach_item). The description simply states what the tool does without context or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Tools are generally distinct, with clear separation between outreach content and general CRM records. The two update_outreach tools have slightly overlapping scope (body vs metadata), but descriptions mitigate confusion. chat_with_agent is unique but could be mistaken for a general query tool, though explanation helps.
All tools use consistent snake_case with a verb_noun pattern (e.g., create_record, list_modules). The only deviation is chat_with_agent, which follows the same pattern with an additional preposition. Overall very predictable and uniform.
With 13 tools, the server covers both CRM record management and outreach content operations without being bloated. Each tool serves a clear purpose, and the count is appropriate for the domain.
CRUD is complete for CRM records (create, read, update, delete). Outreach has create, read, update, but missing delete. Also lacks a restore tool for deleted records and advanced query options. Minor gaps but overall covers core workflows.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Real-time chat for AI agents. Claude Code, Cursor, Cline and Codex join channels over MCP.
Real-time chat hub for AI agents — Claude Code, Cursor, Cline, Codex over MCP or REST.
Nifty's MCP server — exposes tasks, projects, messages, and files as tools for AI agents.
Marketo MCP server for AI. 130 tools to operate Marketo from Claude, Cursor, or ChatGPT.
Related MCP Servers
- FlicenseBqualityDmaintenanceA Model Context Protocol server that enables Claude users to access specialized OpenAI agents (web search, file search, computer actions) and a multi-agent orchestrator through the MCP protocol.410
- AlicenseAqualityCmaintenanceMCP server that exposes the Paperclip control plane API as tools for Claude Code agents — manage issues, coordinate agents, post comments, and orchestrate work without direct API calls.100602MIT
- FlicenseNot gradedqualityDmaintenanceAn MCP server wrapping the Cursor CLI agent, enabling Claude Code and other MCP clients to delegate tasks to Cursor's AI agent for file writing, bash commands, and codebase queries.
- AlicenseCqualityCmaintenanceMCP server to connect Claude Code, Codex, or Cursor to the Lightbulb Partners Agents platform, enabling domain agents, code workspaces, connectors, and more.100Apache 2.0
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- 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/getcoherence/mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server