Skip to main content
Glama
leomatix

raynet-mcp

by leomatix

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

  1. Download the latest raynet-mcp-*.mcpb file from the Releases page.

  2. Open Claude Desktop → Settings → Extensions → drag the .mcpb file in (or double-click the file).

  3. 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

  4. Enable the extension and restart Claude Desktop.

  5. 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.js on 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.js

Option 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 appear

Then 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 dsh upgrade changes the dsh-mcp-client schema, re-check with dsh --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, where OP is GT, LT, or EQ (a plain "field": value means 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 offset alongside limit.

  • Newest-first ordering via a newest_first flag.

A couple of Raynet quirks worth knowing (Claude handles them for you):

  • Raynet supports GT / LT / EQ but not >= / <= — for an inclusive lower bound, use GT with the day before.

  • Raynet's list endpoint has no sort parameter, so results default to creation order; newest_first is provided for when you want the most recent records.

See the issues page to report problems or request features.


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 tools
raynet_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.

ParametersJSON Schema
NameRequiredDescriptionDefault
bc_typeNoBusinessCase type name — must match exactly a value that exists in the client's Raynet. Use raynet_get_enumerations to discover available values.
lead_idYesID of the lead to convert
bc_phaseNoBusinessCase 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_idNoID 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_idNoID 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

A4.2/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesClient's first and last name
emailNoEmail address
phoneNoPhone number
topicNoLead topic
noticeNoNote for the lead
sourceNoContact source name — must match exactly a value that exists in the client's Raynet. Use raynet_get_enumerations to discover available values.
bc_typeNoBusinessCase 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_phaseNoBusinessCase 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.
categoryNoCategory name — must match exactly a value that exists in the client's Raynet. Use raynet_get_enumerations to discover available values.
auto_convert_to_bcNoWhether to automatically convert the Lead into a BusinessCase

TDQS

B3.1/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesClient's first and last name, e.g. 'Jane Doe'
emailNoClient's email address
phoneNoClient's phone number
topicNoLead topic. Defaults to: 'Inquiry from {name}'
noticeNoAdditional note for the lead
sourceNoContact source name (not ID) — must match exactly a value that exists in the client's Raynet. Use raynet_get_enumerations to discover available values.
categoryNoLead 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

A3.8/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
entityYesType of record to delete
record_idYesID of the record to delete
confirmationNoExact record identifier confirming deletion. Call without it first to receive the required phrase, then call again with it.

TDQS

A3.8/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines4/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.1/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.1/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
entityYes
record_idYes

TDQS

A4.5/5.0
Behavior5/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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)

ParametersJSON Schema
NameRequiredDescriptionDefault
entityYesName of the entity to inspect

TDQS

B3.2/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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_test_connectionA

Tests the connection to Raynet CRM and returns basic info about the instance

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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

A3.6/5.0
Disambiguation3/5

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.

Naming Consistency4/5

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.

Tool Count5/5

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.

Completeness3/5

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

ActivityMaintained
ResponsivenessNo issues

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

  • A
    license
    B
    quality
    F
    maintenance
    Enables natural language interaction with Pipedrive CRM via Claude Code, allowing users to manage deals, contacts, activities, and more through conversational commands.
    26
    11
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables querying and managing a CRM database through natural language conversations with Claude Desktop.
  • A
    license
    B
    quality
    D
    maintenance
    Enables 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.
    16
    MIT

Latest Blog Posts

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