raynet-mcp
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@raynet-mcpTest the Raynet connection and tell me how many leads I have."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Raynet CRM — MCP Connector for Claude
Connect Claude directly to your Raynet CRM. Search records, create leads and business cases, and manage your sales pipeline by chatting with Claude — no copy-pasting, no switching tabs.
Install it in one click. No terminal, no Node.js, no Python, no config files.
What it does
Once installed, Claude can work with your Raynet CRM through 11 tools:
Reading
Test the connection and see your record counts
Search leads, business cases, companies, and people — with field filters, full-text search, paging, and newest-first ordering
Fetch full details of any record
Read your CRM's own categories, sources, phases, and business-case types (the connector reads your instance's values live — it never assumes names)
Scan your CRM's structure
Creating
Create a lead with contact details
Convert a lead into a business case
Create a full pipeline (company → person → lead → business case) in one step
Deleting
Delete a record — with a built-in safeguard: you must type the record's exact code (or name) to confirm, so nothing is deleted by accident.
Related MCP server: Pipedrive MCP
Install
Download the latest
raynet-mcp-*.mcpbfile from the Releases page.Open Claude Desktop → Settings → Extensions → drag the
.mcpbfile in (or double-click the file).Enter your Raynet details in the window that appears:
Instance name — your Raynet account name
Login — the email you sign in to Raynet with
API key — from Raynet (stored securely in your system keychain)
Default owner ID — (optional) the user ID that will own records the connector creates; only needed if you create records
Enable the extension and restart Claude Desktop.
Open a new chat and try: "Test the Raynet connection and tell me how many leads I have."
Works on macOS, Windows, and Linux (Claude Desktop, all plans including Free). Heavy use may need a paid plan due to message limits.
Where do I find my API key?
In Raynet, under your account/API settings. The connector uses your login email plus this key to authenticate — the same credentials your own Raynet account has, so it can only see and do what you can.
Using with other MCP clients
This connector speaks the standard Model Context Protocol over stdio, so it is
not Claude-only. Any MCP client that can launch a local stdio server can use all
11 Raynet tools — no code changes, no separate build. The same dist/index.js and the
same four environment variables that power the Claude Desktop .mcpb work everywhere.
Verified setups below: Google Gemini CLI and DeepSeek Harness (dsh).
Prerequisites
Unlike the .mcpb (which ships with everything Claude Desktop needs), these clients
launch the server themselves with your system's Node, so you need:
Node.js installed (LTS recommended)
The server's built
dist/index.json disk — get it in one of two ways:
Option A — clone & build (canonical):
git clone https://github.com/leomatix/raynet-mcp.git
cd raynet-mcp
npm install
npm run build # produces dist/index.jsOption B — reuse the .mcpb you already downloaded (shortcut):
A .mcpb file is just a zip. Unpack it and you already have dist/ plus its
dependencies — no build step needed:
unzip raynet-mcp-0.2.0.mcpb -d raynet-mcp-unpacked
# dist/index.js now lives in raynet-mcp-unpacked/dist/Either way, note the absolute path to dist/index.js — you'll paste it into the
config below.
You'll also need your Raynet credentials (see Where do I find my API key? in this README).
Google Gemini CLI
Add the server to ~/.gemini/settings.json (global) or .gemini/settings.json (per
project) under the mcpServers key:
{
"mcpServers": {
"raynet": {
"command": "node",
"args": ["/absolute/path/to/raynet-mcp/dist/index.js"],
"env": {
"RAYNET_INSTANCE": "your-instance",
"RAYNET_LOGIN": "you@example.com",
"RAYNET_API_KEY": "$RAYNET_API_KEY",
"RAYNET_DEFAULT_OWNER_ID": "1"
}
}
}
}Gemini CLI expands environment variables inside the env block, so keeping the key in
your shell (export RAYNET_API_KEY=...) rather than hard-coding it is the safer
choice. RAYNET_DEFAULT_OWNER_ID is optional.
Verify:
gemini mcp list # "raynet" should appearThen start gemini and run /mcp inside the CLI to see the server status and the
11 registered tools. Try: "Run raynet_test_connection and tell me how many leads I
have."
DeepSeek Harness (dsh)
DeepSeek Harness ships an official MCP client plugin, @deepseek-ai/dsh-mcp-client.
One entry per server is the whole setup. Add it to your profile's cordis.patch.yml:
- insert:
- id: mcp-raynet
name: '@deepseek-ai/dsh-mcp-client'
config:
serverName: raynet
transport: stdio
command: node
args: ['/absolute/path/to/raynet-mcp/dist/index.js']
env:
RAYNET_INSTANCE: your-instance
RAYNET_LOGIN: you@example.com
RAYNET_API_KEY: !!js process.env.RAYNET_API_KEY
RAYNET_DEFAULT_OWNER_ID: '1'The !!js process.env.RAYNET_API_KEY tag reads the key from the environment at load
time instead of writing the secret into the file — export RAYNET_API_KEY in the shell
that launches dsh. After a restart, the tools appear namespaced as
mcp__raynet__raynet_search, mcp__raynet__raynet_test_connection, and so on.
Verify: in a chat, ask "Run mcp__raynet__raynet_test_connection and tell me how many leads I have."
Note: DeepSeek Harness is in developer preview; its plugin config schema can shift between releases. If a future
dshupgrade changes thedsh-mcp-clientschema, re-check withdsh --dump-config.
A note on ChatGPT and remote clients
The setups above work because Gemini CLI and dsh run the server locally over stdio. Clients that only connect to remote MCP servers over HTTPS (e.g. ChatGPT) need a different transport (Streamable HTTP), a hosted endpoint, and authentication — that's on the roadmap, not part of this stdio guide.
Privacy — please read
This connector is a local bridge between Claude Desktop (on your computer) and your Raynet CRM. Here's what that means for your data:
The connector itself sends your data nowhere. It has no telemetry, no "phone home", no external logging. It talks only to Raynet's API, using your own credentials. The source code is public — you can verify this.
Your API key stays on your machine, in your operating system's secure keychain (macOS Keychain / Windows Credential Manager). It is never written to a file or included in the package.
Data reaches an AI model only when you ask. When you ask Claude a question, Claude pulls just what's needed to answer it — not your whole database. There is no bulk upload of your CRM.
Where the connector's responsibility ends: once data is in your conversation, what happens to it is governed by your AI provider's policy (Anthropic, or whichever model you use), not by this connector. Review your provider's data and retention policy to understand how conversation data is handled.
Want maximum privacy? Because this is a standard MCP server, you can point it at a locally-run model instead of a cloud AI. In that setup your CRM data never leaves your own infrastructure at all.
Important notes
Use at your own risk. This is free, open-source software provided as-is (see LICENSE). It creates and deletes real records in your CRM. Test on non-production or test data first before relying on it for real work.
Deletion is guarded but still real — once confirmed, a record is gone.
This is an independent, community project and is not affiliated with or endorsed by Raynet or Anthropic.
Searching your CRM
raynet_search supports real filtering, so Claude can answer targeted questions
in a single query:
Field filters using Raynet's operator syntax —
"field[OP]": value, whereOPisGT,LT, orEQ(a plain"field": valuemeans equals). Works on dates and enum fields, e.g. leads created from 15 Aug onward:{"leadDate[GT]": "2026-08-14"}.Full-text search across a record type.
Paging with
offsetalongsidelimit.Newest-first ordering via a
newest_firstflag.
A couple of Raynet quirks worth knowing (Claude handles them for you):
Raynet supports
GT/LT/EQbut not>=/<=— for an inclusive lower bound, useGTwith the day before.Raynet's list endpoint has no sort parameter, so results default to creation order;
newest_firstis provided for when you want the most recent records.
See the issues page to report problems or request features.
Related project
Running WordPress? There's a companion plugin by the same author that sends your contact-form submissions straight to Raynet CRM as leads — raynet-lead-form. Also free and open source.
Support
This project is community-supported and shared freely as a thank-you to the open-source community — please open an issue on GitHub for bugs and feature requests. It's maintained in spare time, so please set expectations accordingly. For other enquiries, including help with CRM automation or AI integration for your business, contact kontakt@leomatix.net.
License
MIT — see LICENSE.
Raynet® and Raynet CRM® are trademarks of their respective owner. This is an independent, unofficial integration and is not affiliated with or endorsed by Raynet or Anthropic.
Built by Adam Chludziński (Leomatix) · leomatix.net
Available Tools
11 toolsraynet_convert_lead_to_bcA
Converts an existing Lead into a BusinessCase. The bc_type and bc_phase names are automatically converted to IDs. Use this after 'raynet_create_lead_full' once the client is already interested in the offer.
| Name | Required | Description | Default |
|---|---|---|---|
| bc_type | No | BusinessCase type name — must match exactly a value that exists in the client's Raynet. Use raynet_get_enumerations to discover available values. | |
| lead_id | Yes | ID of the lead to convert | |
| bc_phase | No | BusinessCase phase name — must match exactly a value that exists in the client's Raynet. Use raynet_get_bc_phases (or raynet_get_enumerations) to discover available values. | |
| person_id | No | ID of the person to attach during conversion. Needed to attach the company/person during conversion; if omitted, the tool will try to read it from the lead itself. | |
| company_id | No | ID of the company to attach during conversion. Needed to attach the company/person during conversion; if omitted, the tool will try to read it from the lead itself. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral disclosure burden. It does add useful behavioral context by stating that bc_type and bc_phase names are converted to IDs automatically. However, it does not disclose side effects such as whether the original lead is deleted, deactivated, or left unchanged after conversion.
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 focused sentences with no filler. The core action is front-loaded, the non-obvious conversion behavior comes next, and the workflow cue is placed at the end. Every sentence contributes useful information.
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?
The description covers the key contextual points: what the tool does, the name-to-ID conversion behavior, and where it fits in the intended workflow. The schema fills in parameter details and enum discovery. It does not describe return values or edge cases, but the tool remains safely callable with the information provided.
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 already documents all 5 parameters at 100% coverage, so the baseline is 3. The description adds real meaning by explaining that bc_type and bc_phase are human-readable names that get converted to IDs internally, which is not obvious from the plain string types alone.
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 states a specific action ('Converts') and a specific resource transformation ('existing Lead into a BusinessCase'). It also distinguishes this from related creation tools by clarifying that bc_type and bc_phase names are automatically resolved to IDs.
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 explicitly provides workflow context: use this after raynet_create_lead_full and only once the client is interested in the offer. This clearly signals when to use the tool, though it does not explicitly contrast it with alternatives like raynet_create_full_pipeline or state when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
raynet_create_full_pipelineB
ALL IN ONE: creates Company + Person + Lead and optionally converts it into a BusinessCase. One call = the entire sales pipeline in Raynet. All names (source, category, bc_type, bc_phase) are automatically converted to IDs.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Client's first and last name | |
| No | Email address | ||
| phone | No | Phone number | |
| topic | No | Lead topic | |
| notice | No | Note for the lead | |
| source | No | Contact source name — must match exactly a value that exists in the client's Raynet. Use raynet_get_enumerations to discover available values. | |
| bc_type | No | BusinessCase type name for the conversion — must match exactly a value that exists in the client's Raynet. Use raynet_get_enumerations to discover available values. | |
| bc_phase | No | BusinessCase phase name for the conversion — must match exactly a value that exists in the client's Raynet. Use raynet_get_bc_phases (or raynet_get_enumerations) to discover available values. | |
| category | No | Category name — must match exactly a value that exists in the client's Raynet. Use raynet_get_enumerations to discover available values. | |
| auto_convert_to_bc | No | Whether to automatically convert the Lead into a BusinessCase |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose the full behavioral profile. It does reveal a non-obvious behavior—that name-based fields are auto-resolved to IDs—and makes the mutation side effect explicit. But it omits critical side effects and failure modes: how the flat input is split across Company/Person/Lead, whether a failed BusinessCase conversion leaves the Lead created, whether duplicates are possible, and what the response contains.
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-load the composite action and keep the statement compact. The 'ALL IN ONE' and 'One call = entire sales pipeline' phrases are slightly redundant, but the description wastes little space and highlights the tool's key differentiator.
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 10-parameter mutation with no output schema and no annotations, the description leaves important gaps: no return value (does it give IDs of all created entities?), no prerequisite or dependency rules, and no explanation of how the provided fields map onto the three created objects. An agent could guess the intent but cannot confidently predict the outcome.
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 already documents all 10 parameters at 100% coverage, so the baseline applies. The description adds one useful cross-cutting behavior—source/category/bc_type/bc_phase accept names and are auto-converted to IDs—but it doesn't add semantics for the remaining parameters or clarify dependencies between auto_convert_to_bc and bc_type/bc_phase.
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 states a concrete composite action: creates Company + Person + Lead and optionally converts the Lead into a BusinessCase. 'One call = the entire sales pipeline' reinforces the scope. It doesn't explicitly contrast with raynet_create_lead_full, so it misses full sibling differentiation, but the resource list makes the difference clear.
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?
It communicates a clear intended context: use this when you want the whole Company→Person→Lead→BusinessCase workflow in one call, and the optional conversion hints when a BC is wanted. However, it never names the granular alternatives (raynet_create_lead_full, raynet_convert_lead_to_bc) or states when one would choose those instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
raynet_create_lead_fullA
Creates a full pipeline: Company + Person + Lead attached to both. The source and category names are automatically converted to IDs (you don't need to know the IDs!). Use this when you want to add a new client to Raynet in a single call.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Client's first and last name, e.g. 'Jane Doe' | |
| No | Client's email address | ||
| phone | No | Client's phone number | |
| topic | No | Lead topic. Defaults to: 'Inquiry from {name}' | |
| notice | No | Additional note for the lead | |
| source | No | Contact source name (not ID) — must match exactly a value that exists in the client's Raynet. Use raynet_get_enumerations to discover available values. | |
| category | No | Lead category name (not ID) — must match exactly a value that exists in the client's Raynet. Use raynet_get_enumerations to discover available values. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It usefully discloses that source/category names are auto-converted to IDs and that multiple record types are created. It does not mention side effects like duplicate detection, partial failure behavior, required permissions, or what response the caller can expect.
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 the core behavior and followed by the explicit usage trigger. No filler.
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?
The schema documents all seven parameters, and the description covers high-level behavior. However, there is no output schema and no mention of what the call returns or how it behaves on duplicates/failures, and the near-identical sibling create_full_pipeline is left unresolved.
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 baseline is 3. The description adds value by explicitly promising that IDs are handled automatically, which reassures the agent that plain names are sufficient for source and category.
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?
Description uses a specific action ('Creates a full pipeline') and enumerates components (Company + Person + Lead), so an agent understands what is created. However, it does not differentiate from sibling raynet_create_full_pipeline, which appears to cover the same operation.
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 gives a clear call-to-action: 'Use this when you want to add a new client to Raynet in a single call.' It does not mention exclusions or alternatives, so it stops short of the top score.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
raynet_delete_recordA
Deletes a record from Raynet CRM (lead, businessCase, company, person). If the record is linked to other data, Raynet will return an error stating what is blocking the deletion.
| Name | Required | Description | Default |
|---|---|---|---|
| entity | Yes | Type of record to delete | |
| record_id | Yes | ID of the record to delete | |
| confirmation | No | Exact record identifier confirming deletion. Call without it first to receive the required phrase, then call again with it. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden of behavioral disclosure. It does disclose the destructive nature and the linked-data error behavior, but it omits mention of irreversibility, the confirmation parameter workflow, or permission requirements. Schema covers confirmation, but the description could go further.
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 tight sentences convey the core action, supported entity types, and the most important error behavior with no filler. The primary action is front-loaded and 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 simple delete operation with a fully described schema, the description plus schema give the agent enough to invoke the tool and understand a key failure mode. The main gap is a clearer statement of permanence or success-response expectations, especially given no output schema.
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 schema already documents all three parameters, including the multi-step confirmation workflow. The description adds no extra parameter-level meaning beyond the schema, matching the baseline for high schema coverage.
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 a specific verb and resource: 'Deletes a record from Raynet CRM' and enumerates the exact entity types it supports. This distinguishes it from the sibling read/search tools without ambiguity.
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 when deletion is applicable by naming the entity types, and notes that linked data will produce an error. However, it does not explicitly state when to use this tool over alternatives, discuss prerequisites, or warn against deletion before verification.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
raynet_full_scanA
Scans all the main Raynet endpoints (lead, businessCase, company, person, enumerations) and returns a complete mapping of structure, fields, and picklists. Use this when you want to discover the available ID values for statuses, categories, sources, etc.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of behavioral disclosure. It communicates that the tool scans endpoints and returns a mapping, which implies a read-only discovery operation, but it does not explicitly state that it makes no changes, nor does it mention permissions, response size, or potential runtime cost.
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 only two sentences: the first states the action and result, and the second gives the practical use case. There is no filler or repetition, and the key information is front-loaded.
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 zero-parameter discovery tool, the description covers what it scans and what it returns. It is concise and sufficient, though it does not describe the exact shape of the returned mapping or any operational caveats, which would be useful given there is no output schema.
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?
There are zero parameters and the schema is empty, so there is no parameter burden on the description. The baseline for a no-parameter tool is 4, and the description correctly focuses on purpose and output rather than arguments.
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 uses a specific verb ('scans') and names the resources ('lead, businessCase, company, person, enumerations'), with a clear output ('mapping of structure, fields, and picklists'). It does not explicitly distinguish itself from siblings like raynet_get_structure or raynet_get_enumerations, so it stops short of a 5.
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?
It gives a clear use case: 'discover the available ID values for statuses, categories, sources, etc.' However, it does not mention when not to use it or name alternatives such as raynet_get_enumerations or raynet_get_structure.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
raynet_get_bc_phasesA
Fetches the list of BusinessCase phases (sales pipeline stages) with IDs and names
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
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 of behavioral disclosure. 'Fetches' clearly signals a read-only operation, and 'with IDs and names' specifies the response content. It does not add caveats about ordering or empty results, but for a parameterless fetch tool this is sufficient 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?
One short, front-loaded sentence states the action, the object, and the returned fields. There is no redundancy, filler, or repetition of the tool name.
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 parameterless lookup tool, the description is complete: it names the resource, the domain context, and the return contents. No output schema exists, so the explicit mention of 'IDs and names' fulfills the agent's need to understand what the call returns.
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 tool takes zero parameters, and the schema is empty with no required fields. The baseline for zero-parameter tools is 4, and the description correctly avoids inventing parameter-related details that would not apply.
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 uses the specific verb 'Fetches' with a clear resource: 'list of BusinessCase phases'. Adding '(sales pipeline stages)' immediately orients the agent and distinguishes it from generic structure/enumeration tools. An agent can confidently infer what this tool retrieves.
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 gives no explicit guidance on when to use this tool versus siblings like raynet_get_enumerations, raynet_get_structure, or raynet_full_scan. There is no statement of prerequisites, exclusions, or alternatives. The intended context is only implied by the phrase 'sales pipeline stages'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
raynet_get_enumerationsB
Fetches all enumerations (picklists) from the Raynet system
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
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 indicates a read-style operation ('Fetches') but does not disclose potential payload size, response shape, authentication requirements, or whether this returns everything at once. The behavioral disclosure is minimal.
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 directly states the operation and resource. It is appropriately sized for a parameterless tool, with no wasted words, though it does not add extra structural context.
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 zero-parameter fetch tool, the description names the resource and action clearly. However, with no output schema and no guidance on how the result is structured or how this differs from sibling scanning/structure tools, the description is adequate but not fully complete for an agent deciding among alternatives.
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 zero parameters, so no parameter semantics are needed; the description need not explain anything about arguments. This matches the 0-params baseline of 4.
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 states a specific verb and resource: fetches all enumerations (picklists) from the Raynet system. It is clear and unambiguous about the operation, though it does not explicitly differentiate itself from sibling tools like raynet_get_structure or raynet_full_scan.
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?
There is no guidance on when to use this tool versus the sibling alternatives. No exclusions or alternative routing are mentioned, so the agent must infer its place among raynet_full_scan, raynet_get_structure, and raynet_get_bc_phases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
raynet_get_recordA
Fetches the details of a specific record by ID. A non-existent id is not an error — it returns { found: false, entity, id } (id numbering has gaps, so checking existence this way is expected and normal). A found record returns { found: true, data } with the record's fields in data.
| Name | Required | Description | Default |
|---|---|---|---|
| entity | Yes | ||
| record_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, and it delivers: it discloses exact return shapes for both found and non-existent records, states that a missing ID is not an error, and explains the ID-gap rationale. This makes the tool's runtime behavior predictable without an output schema.
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?
Three sentences with no filler; the main action is front-loaded in the first sentence, and the edge-case behavior follows logically. Every sentence contributes operational information.
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 two-parameter fetch tool with no annotations and no output schema, this description is complete: it covers both success and non-success branches, existence-checking semantics, and the reason for ID gaps. An agent has enough to call it correctly.
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 0%, but the description adds meaning to record_id by tying it to a specific by-ID lookup and noting that ID numbering has gaps. It does not detail the entity enum values or otherwise compensate fully for the missing property descriptions, though the enum values are fairly self-explanatory.
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?
States an explicit verb ('Fetches') and a precise resource ('details of a specific record by ID'), which immediately distinguishes it from sibling tools like raynet_search or raynet_full_scan that operate on broader queries or scans. The by-ID scope is unambiguous.
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?
Clear usage context: use when you have an entity type and a record ID and want that record's details. It also explicitly endorses using the tool for existence checking via the found:false contract. It does not name alternatives or exclusion conditions, so it stops short of a full 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
raynet_get_structureB
Fetches the structure of a specific Raynet entity (fields, customFields, picklists)
| Name | Required | Description | Default |
|---|---|---|---|
| entity | Yes | Name of the entity to inspect |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, and it does state that the operation is a fetch of structural metadata, which implies read-only behavior. However, it does not disclose response shape, error conditions, or any entity-specific behavior, leaving an agent to discover those details at call time.
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 that conveys the core purpose without filler. It is appropriately compact for such a simple tool.
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 one-parameter introspection tool, the description adequately states the resource and the kind of data returned. However, with no output schema, more detail about the exact structure of the result would improve completeness, and the absence of any usage caveats or relationship to sibling tools leaves some context missing.
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 schema already fully documents the only parameter ('entity') with an enum of four valid values, so schema coverage is 100%. The description adds context about what kind of structure is returned but does not add new meaning to the parameter itself; 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 names a specific verb ('Fetches'), a clear resource ('structure of a specific Raynet entity'), and specifies the kind of content ('fields, customFields, picklists'). It is distinguishable from get_record and full_scan, though it does not explicitly disambiguate from the similarly named raynet_get_enumerations.
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 about when to use this tool versus alternatives like raynet_get_enumerations or raynet_get_record. The usage context must be inferred from the tool name and entity parameter rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
raynet_searchA
Searches for records in Raynet CRM. Supports field filters, an offset for paging, and free-text search. There is no sorting mechanism — results are always ordered ascending by id (oldest first). Use newest_first to get the most recently created records instead.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| entity | Yes | ||
| offset | No | Number of results to skip, for paging through a large result set. | |
| filters | No | Object mapping field name to filter value. Operator syntax: "field[OP]": value, where OP is one of GT, LT, EQ — these are the ONLY operators Raynet supports. A plain "field": value means EQ. GEQ and LEQ do NOT exist — Raynet rejects them with a 400 'Unsupported operator' error. For an inclusive lower bound, use GT with the day before instead, e.g. to get records from 2026-08-15 onward use {"leadDate[GT]": "2026-08-14"}. | |
| fulltext | No | Free-text search across the entity's fields. | |
| newest_first | No | Return the most recently created records (highest id) first, instead of the default ascending-by-id order. Costs an extra internal API call (one to read the total count, one to fetch the last page), and reflects the record count at the moment of the call — a record created concurrently could shift the window by one. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It does well by revealing the lack of sorting, the fixed ascending-by-id ordering, and pointing to newest_first as the alternative. This gives the agent meaningful operational expectations beyond what the schema alone conveys.
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 three sentences with no filler. It front-loads the core purpose, then adds the important sorting caveat, then gives a direct actionable alternative. 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?
Given the absence of an output schema, the description still provides enough context for a correct call: the operation, paging, filtering, full-text search, and ordering behavior. It does not describe the return shape or count semantics, but for a search tool the core invocation guidance 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?
The description largely paraphrases what the schema already documents for filters, offset, and fulltext, and does not add meaning for limit or entity beyond the schema's enum/default. Since schema description coverage is moderate (67%), the summary adds some top-level orientation but does not substantially compensate for gaps.
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 and resource ('Searches for records in Raynet CRM') and enumerates key capabilities (field filters, paging, full-text search). It does not explicitly differentiate itself from siblings like raynet_get_record or raynet_full_scan, so it falls short of a 5.
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 when to use the tool by listing its search capabilities and gives parameter-level guidance ('Use newest_first...'), but it never explicitly states when to choose this over a sibling or when not to use it. Usage context is present but alternatives are not addressed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
raynet_test_connectionA
Tests the connection to Raynet CRM and returns basic info about the instance
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It does disclose the primary action ('tests the connection') and a return value ('basic info'), but it does not specify what that info includes, whether the operation is read-only, or any error/timeout behavior. For a connection test, this is adequate but leaves meaningful gaps.
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 entire description is one compact sentence with a clear subject, verb, and object. It is front-loaded and contains no filler or redundant restatement of the tool name.
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 zero-parameter diagnostic tool the description is mostly adequate, but 'basic info about the instance' is vague. Since there is no output schema, the agent cannot tell what fields or status details will come back, which reduces completeness for agents that need to interpret 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?
The tool has zero parameters and 100% schema description coverage, so there is no parameter meaning for the description to clarify. Per the rubric, zero-parameter tools receive a baseline of 4; the description adds nothing needed.
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 states a specific verb ('Tests the connection') and resource ('Raynet CRM'), and adds what it returns ('basic info about the instance'). This clearly distinguishes it from siblings that scan, search, delete, or create 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?
No guidance is provided about when to run this tool versus alternatives, no preconditions are mentioned, and no exclusions are stated. The description implies a diagnostic purpose but never tells the agent whether to use it before other Raynet tools or how it fits into a workflow.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Most tools have distinct purposes, but there is noticeable overlap: raynet_full_scan largely supersedes raynet_get_structure and raynet_get_enumerations, and raynet_create_full_pipeline overlaps with raynet_create_lead_full plus raynet_convert_lead_to_bc. Descriptions help, but an agent could easily select the wrong high-level tool.
All tools share the raynet_ prefix and mostly follow a verb_noun pattern like get_record, create_lead_full, and delete_record. However, raynet_full_scan and raynet_search break the pattern, with full_scan reading as an adjective_noun and search having no object.
11 tools is within the ideal range for a CRM integration server. The count covers connection testing, schema discovery, search/retrieval, creation, conversion, and deletion without feeling bloated.
The server covers discovery, search, get, delete, lead creation, and lead-to-businesscase conversion, but there is no update operation at all. For a CRM integration, the inability to update existing records is a notable gap that will cause dead ends.
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
Your professional network in Claude — search contacts, log notes, and send warm intros.
Connect Claude to your Platform7n workspaces — chat, links, and tasks. One-click OAuth.
xmagnet — AI-powered B2B CRM for Claude. 35 tools that turn natural-language prompts into real CRM actions: prospect, enrich, score leads, manage deals, scan buying intent, run email campaigns and sequences, build forms and landing pages, refine ICP, and analyze performance — all directly inside Claude. 🚀 ONE-CLICK INSTALL: https://api.xmagnet.ai/claude The install page guides Claude users through 3 steps in under a minute: open Claude Connectors, paste the connector name, paste the server URL, sign in. A reviewer workspace is auto-provisioned on first sign-in with sample contacts, deals, campaigns, and ICP suggestions, so every tool works end-to-end with zero setup. No 2FA. No paid plan required. Free tier exposes all 35 tools. What you can do: • Prospecting — search_contacts, search_companies, search_investors, find_contacts_at_companies, enrich_contact, validate_email, find_competitors, company_intelligence • Pipeline — get_deals_pipeline, scan_deal_intent, get_ghost_pipeline, create_deal • Campaigns & sequences — create_campaign, generate_campaign_content, get_campaign_stats, get_bounce_stats, get_unsub_stats, create_sequence_draft, list_sequences • Top of funnel — suggest_icp, get_icp, create_form, list_forms, create_landing_page, list_landing_pages, show_suggestions • Operations — analyze_contacts, get_contact_details, update_contact, save_contacts_to_crm, export_contacts, get_dashboard_stats, get_credit_balance Example prompts to try: • "Find C-suite contacts at fintech companies that raised Series A in the last 6 months." • "Scan my open deals for buying intent and prioritize follow-ups." • "Generate a re-engagement campaign for contacts who opened my last newsletter but didn't reply." • "Show me my deals pipeline by stage with weighted value and win rate." • "Generate a landing page for my Q2 webinar with a registration form." Built for founders, SDRs, RevOps, and growth teams who want their CRM to take action — not just store records. Install: https://api.xmagnet.ai/claude · Site: https://xmagnet.ai · Privacy: https://xmagnet.ai/privacy-policy · Terms: https://xmagnet.ai/terms-of-service · Support: ashish.sinha@xmagnet.ai
Personal CRM for Claude. Contacts live as plain-text files in your own Google Drive.
Related MCP Servers
- AlicenseBqualityAmaintenanceProvides comprehensive access to Pipedrive CRM with 100+ tools for managing deals, contacts, organizations, activities, and sales workflows through natural language conversations with Claude.1004512MIT
- AlicenseBqualityFmaintenanceEnables natural language interaction with Pipedrive CRM via Claude Code, allowing users to manage deals, contacts, activities, and more through conversational commands.2611MIT
- FlicenseNot gradedqualityDmaintenanceEnables querying and managing a CRM database through natural language conversations with Claude Desktop.
- AlicenseBqualityDmaintenanceEnables sales, marketing, and C-suite teams to search, view, and update Salesforce records through Claude, with tools for record management, activity tracking, and global search.16MIT
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/leomatix/raynet-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server