Skip to main content
Glama
neuralverge

NeuralVerge MCP Server

Official
by neuralverge

NeuralVerge MCP Server

An MCP (Model Context Protocol) server that wraps the full NeuralVerge API — AI Research, AI Extract, AI Agents, and Data Sources (LinkedIn, Crunchbase, Email enrichment and lookup, Phone enrichment and lookup, Email verification) — as MCP tools, so any MCP-compatible client (Claude Desktop, Claude Code, Cursor, ChatGPT/GPT clients with MCP support, and others) can call it directly.

This is an independent, unofficial wrapper around the NeuralVerge API. It is not affiliated with or endorsed by NeuralVerge.

Getting an API key

Before installing, you need a NeuralVerge account and an API key:

  1. Sign up at app.neuralverge.ai (or via neuralverge.ai → "Get started").

  2. Choose a plan (see Pricing below) — this determines your monthly points allowance.

  3. Generate an API key from your account/API settings in the app.

  4. Use that key as NEURALVERGE_API_KEY in the Configuration step further down.

Related MCP server: Mixpeek MCP Server

Tools

Every NeuralVerge API endpoint is exposed as a 1:1 MCP tool. run_research and run_agent are asynchronous — they return a session_id immediately; call get_session_status every 2–5 seconds until status is complete or failed (NeuralVerge's own polling guidance). Every other tool returns its result synchronously.

AI Research

run_research

Starts the full multi-step research workflow: searches, analyzes sources, and returns a structured report. Async — returns a session_id.

Param

Type

Required

Description

instructions

string

Yes

The research task, in natural language.

settings.country_code

string

No

Two-letter country code, e.g. us.

settings.search_enabled

boolean

No

Whether web search runs during the task.

settings.deepsearch_model

string

No

Depth tier for the research step (drives cost — see Pricing).

settings.finalizer_model

string

No

Model used to write the final report.

settings.extract_schema_json

string

No

JSON-encoded schema pinning the structured output shape.

Cost: 20–400 pts, depending on deepsearch_model depth tier.

run_agent

Runs a saved NeuralVerge agent — a reusable workflow with baked-in instructions and settings — by its agentId. Async — returns a session_id.

Param

Type

Required

Description

agentId

string (uuid)

Yes

ID of the saved agent to run.

instructions

string

Yes

Instructions for this specific run.

settings.country_code

string

No

Two-letter country code.

settings.search_enabled

boolean

No

Whether web search runs during the task.

settings.deepsearch_model

string

No

Depth tier for the research step.

settings.finalizer_model

string

No

Model used to write the final report.

Cost: same tiered pricing as run_research, based on the agent's configured depth.

get_session_status

Polls a session created by run_research or run_agent.

Param

Type

Required

Description

session_id

string (uuid)

Yes

Session ID returned by run_research or run_agent.

Returns status (queued/running/complete/failed) and, once complete, a results object with a human (Markdown summary) and machine (structured JSON) field. Polling itself is free.

Runs a synchronous web search and returns ranked results (title, URL, snippet). No polling needed.

Param

Type

Required

Description

query

string

Yes

Search query.

settings.country

string

No

Country to bias results toward.

settings.language

string

No

Language to bias results toward.

settings.max_results

number

No

Maximum number of results to return.

Cost: 5 pts.

AI Extract

run_extract

Loads a page by URL and extracts structured data according to natural-language instructions and/or a JSON schema. Synchronous.

Param

Type

Required

Description

url

string

Yes

URL of the page to load and extract from.

instructions

string

Yes

What to extract, in natural language.

settings.country_code

string

No

Two-letter country code for locale-sensitive pages.

settings.extract_schema_json

string

No

JSON-encoded schema pinning the output shape.

Cost: 5 pts.

This is also the generic gateway NeuralVerge itself uses for every catalog data source that doesn't have its own dedicated endpoint (corporate registries, review sites, LinkedIn profiles without email) — point it at the right URL with the right extract_schema_json and it behaves like a dedicated source. See Data sources not exposed as dedicated tools below.

AI Agents

run_agent (see above, under AI Research) — NeuralVerge tags it "AI Agents" since it executes saved, reusable agent configurations rather than one-off instructions.

Data Sources — dedicated tools

These 11 catalog sources have their own dedicated endpoints/tools:

run_linkedin_email

LinkedIn profile lookup by URL, returning contact details including email when available (catalog: LinkedIn people profile + Email).

Param

Type

Required

Description

username

string

Yes

Full LinkedIn profile URL, e.g. https://www.linkedin.com/in/john-doe/

Cost: 10 pts.

run_linkedin_domain

Finds a LinkedIn profile from a company name/domain plus a full name (catalog: LinkedIn profile by name and domain).

Param

Type

Required

Description

company_or_domain

string

Yes

Company name or domain, e.g. openai.com

full_name

string

Yes

Full name of the person to find.

Cost: 10 pts.

Searches LinkedIn companies by query with optional filters.

Param

Type

Required

Description

searchQuery

string

Yes

Free-text company search query.

companySize

string[]

No

Size buckets, e.g. ["51-200"].

industryIds

string[]

No

Industry filters.

locations

string[]

No

Location filters.

maxItems

number

No

Max number of results.

scraperMode

string

No

Scraper depth, e.g. short or full.

startPage

number

No

Page offset.

Cost: 5 pts per company returned.

Searches LinkedIn people with an optional free-text query and advanced filters (company, title, seniority, industry, experience, location).

Param

Type

Required

Description

searchQuery

string

No

Free-text people search query.

maxResults

number

No

Max number of results.

startPage

number

No

Page offset.

scraperMode

string

No

Scraper depth, e.g. short or full.

locations

string[]

No

Location filters.

currentCompany / pastCompany

string[]

No

Current/past employer filters.

currentJobTitleFilter / pastJobTitle

string[]

No

Current/past title filters.

yearsOfExperienceFilter

string[]

No

Experience range filters.

yearsAtCurrentCompanyFilter

string[]

No

Tenure filters.

seniorityLevelFilter

string[]

No

Seniority filters.

functionFilter

string[]

No

Job function filters.

industryIds

string[]

No

Industry filters.

firstNames / lastNames

string[]

No

Name filters.

companyHeadcountFilter

string[]

No

Employer size filters.

Cost: 100 pts per 25 results.

run_linkedin_company_employee

Searches employees of one or more given companies, using the same filter set as run_linkedin_people_search.

Param

Type

Required

Description

companies

string[]

Yes

LinkedIn company URLs or names to search employees of.

searchQuery

string

No

Free-text search query.

maxResults, startPage, scraperMode, locations, currentJobTitleFilter, pastJobTitle, yearsOfExperienceFilter, yearsAtCurrentCompanyFilter, seniorityLevelFilter, functionFilter, industryIds, companyHeadcountFilter

No

Same semantics as run_linkedin_people_search.

Cost: 30 pts per run + 5 pts per profile returned.

run_email_enrichment

Enriches a known email with profile data (name, phones, company, position, LinkedIn/X/Telegram, work experience).

Param

Type

Required

Description

email

string

Yes

Email address to enrich.

Cost: 10 pts.

run_email_validation

Validates deliverability of an email address (valid/invalid/risky, catch-all detection, mail provider, confidence).

Param

Type

Required

Description

email

string

Yes

Email address to validate.

Cost: 1 pt — the cheapest call in the catalog.

run_email_finder

Finds a professional email address from a company domain, first name, and last name.

Param

Type

Required

Description

domain

string

Yes

Company domain, e.g. openai.com

first_name

string

Yes

Person's first name.

last_name

string

Yes

Person's last name.

Cost: 10 pts.

run_phone_enrichment

Enriches a known phone number with profile data (name, emails, company, LinkedIn/X/Telegram, carrier), worldwide.

Param

Type

Required

Description

phone

string

Yes

Phone number in international format, e.g. +1234567890

Cost: 10 pts.

run_phone_enrichment_us

Validates and enriches a US phone number specifically: carrier, line type, activity score, litigator risk, and owner records (with addresses).

Param

Type

Required

Description

phone

string

Yes

US phone number, e.g. 12069735100

Cost: 100 pts.

run_crunchbase_company

Fetches structured company data from a Crunchbase organization URL (website, location, founding year, employees, industries, funding, description).

Param

Type

Required

Description

url

string

Yes

Crunchbase organization URL, e.g. https://www.crunchbase.com/organization/openai

Cost: 15 pts.

Data sources not exposed as dedicated tools

NeuralVerge's catalog lists 29 data sources in total. The 11 above have dedicated endpoints/tools. The other 18 are all reached through run_extract — pass the source's own page URL as url and a matching extract_schema_json; the "Read more" page for each source on the catalog site has the exact schema and an example curl call. All of them cost 5 pts (the standard run_extract price), except where noted.

Company intelligence

Source

What it returns

Cost

Capterra

Description, rating, use cases, alternatives, FAQs, features, pricing, integrations, support.

5 pts

Capterra reviews

User reviews.

5 pts

G2

Product info, rating, reviews, discussions, pricing, features.

5 pts

Trustpilot

Review summary, rating, common topics, company details, contact info, similar companies.

5 pts

Corporate registry (official company registers, by country)

Source

Country

What it returns

Cost

Companies House company

🇬🇧 UK

Registered office, status, type, incorporation date, SIC codes, officers, persons with significant control.

5 pts

Companies House filings

🇬🇧 UK

Filing date, description, document link.

5 pts

Companies House officers

🇬🇧 UK

Officer name, correspondence address, role, appointment date.

5 pts

Ariregister company

🇪🇪 Estonia

General info, VAT info, right of representation, contacts, shareholders, tax info, documents.

5 pts

CVR company

🇩🇰 Denmark

Business info, ownership, financial statements, production units, registration history, employee counts.

5 pts

Czech Business Register search

🇨🇿 Czech Republic

Structured results from a register search.

5 pts

INPI company

🇫🇷 France

Identity, management/direction, establishments, observations and documents.

5 pts

KBO company

🇧🇪 Belgium

General info, functions, entrepreneurial skill, characteristics, authorisations, entity links.

5 pts

KRS company

🇵🇱 Poland

Basic/contact/address data, VAT confirmation, bankruptcy info, legal representatives.

5 pts

YTJ company

🇫🇮 Finland

Business ID, name, company form, home municipality, line of business, registration history.

5 pts

LEI Lookup company

🌐 Global

LEI registration details, company data, legal address.

5 pts

LEI Lookup search

🌐 Global

Structured results from an LEI search.

5 pts

Social media (LinkedIn, without a dedicated tool)

Source

What it returns

Cost

LinkedIn company profile

ID, name, country, locations, followers, employee count, about, specialties.

5 pts

LinkedIn people profile

Name, headline, about, location, current company, full role/education history, certifications, languages, recent posts + engagement.

5 pts

Example: fetching a UK company record via run_extract:

{
  "url": "https://find-and-update.company-information.service.gov.uk/company/08804411",
  "instructions": "Extract data from Companies House profile",
  "settings": {
    "country_code": "us",
    "extract_schema_json": "{ ... }"
  }
}

Pricing

NeuralVerge uses simple, points-based pricing — one pool of points covers research, extraction, and every data source. See neuralverge.ai/pricing for the current numbers.

Plans

Plan

Price

Points / month

Lite

$20/mo

20,000

Base

$50/mo

50,000

Core (Popular)

$100/mo

100,000

Pro

$250/mo

250,000

Ultima

$500/mo

500,000

Enterprise

$1,000/mo

1,000,000

Action costs

Action

Cost

run_search (Search)

5 pts

run_extract (AI Extract) — and every data source routed through it

5 pts

run_research / run_agent (AI research)

20–400 pts, priced by task depth (see below)

Most dedicated Data Source tools

1–15 pts (see per-tool cost above)

run_linkedin_people_search

100 pts per 25 results

run_linkedin_company_employee

30 pts/run + 5 pts/profile

run_phone_enrichment_us

100 pts

AI research depth tiers

Tier

Cost

Speed

Description

Lite

20 pts

30s–90s

Lightweight and fast

Base

50 pts

1m–2m

Efficient for many tasks

Core

100 pts

2m–4m

Balanced and strong for many tasks

Pro

200 pts

3m–7m

Exploratory deep search

Ultima

400 pts

5m–12m

Extensive deep search

Plans can be changed anytime; the new points allowance applies on the next billing cycle. Points reset every cycle.

Requirements

Installation

npm install
npm run build

This compiles TypeScript sources in src/ to dist/.

Configuration

The server reads its configuration from the environment:

Variable

Required

Description

NEURALVERGE_API_KEY

Yes

Your NeuralVerge API bearer token (see Getting an API key).

NEURALVERGE_BASE_URL

No

Override the NeuralVerge API base URL. Defaults to https://api.neuralverge.ai.

MCP_TRANSPORT

No

stdio (default) or http. See Transports & client compatibility below.

MCP_HTTP_PORT

No

Port for http transport. Defaults to 8787.

MCP_HTTP_PATH

No

HTTP path for the MCP endpoint. Defaults to /mcp.

MCP_HTTP_AUTH_TOKEN

No

If set, http transport requires Authorization: Bearer <token> on every request. Strongly recommended if the server is reachable over the internet.

Copy .env.example to .env for local reference, but note the server itself reads process environment variables — most MCP clients pass these via their own config, not via a .env file.

Transports & client compatibility

This server implements both MCP transports, selected via MCP_TRANSPORT, because different clients require different ones:

Client

Transport it needs

Works with this server?

Claude Desktop, Claude Code

stdio (spawns a local process)

MCP_TRANSPORT unset/stdio (default)

Cursor

stdio (spawns a local process, same mcpServers config shape)

MCP_TRANSPORT unset/stdio (default)

ChatGPT (Developer Mode / custom connectors)

Remote Streamable HTTP or SSE over HTTPS — cannot spawn local stdio commands

MCP_TRANSPORT=http, deployed somewhere reachable (or tunneled)

Any other MCP client

stdio or Streamable HTTP

✅ pick whichever transport it speaks

stdio (Claude Desktop, Claude Code, Cursor)

These clients spawn the server as a local subprocess and talk JSON-RPC over its stdin/stdout — no networking involved. Add this to your client's MCP config (claude_desktop_config.json for Claude Desktop, .cursor/mcp.json for Cursor — the shape is identical):

{
  "mcpServers": {
    "neuralverge": {
      "command": "node",
      "args": ["/absolute/path/to/MCP/dist/index.js"],
      "env": {
        "NEURALVERGE_API_KEY": "your_api_key_here"
      }
    }
  }
}

Streamable HTTP (ChatGPT / remote clients)

ChatGPT's MCP connectors only accept remote servers over Streamable HTTP or SSE — they cannot launch a local node/npx process the way Claude Desktop and Cursor do. To use this server from ChatGPT, run it in HTTP mode and make it reachable over HTTPS:

MCP_TRANSPORT=http MCP_HTTP_PORT=8787 MCP_HTTP_AUTH_TOKEN=some_shared_secret \
NEURALVERGE_API_KEY=your_api_key_here node dist/index.js

This starts a stateless Streamable HTTP server (fresh MCP session per request, no server-side session storage) at http://localhost:8787/mcp, plus a GET /health check. To reach it from ChatGPT you need a public HTTPS URL — either:

  • deploy it to any Node host (Fly.io, Render, a VPS, a container platform, etc.), or

  • tunnel your local instance for testing (e.g. ngrok http 8787 or a Cloudflare Tunnel).

Then in ChatGPT: enable Developer Mode (Settings → Connectors → Advanced), add a connector pointing at https://your-host/mcp, and set the Authorization: Bearer <MCP_HTTP_AUTH_TOKEN> header if you set one.

Security note: NEURALVERGE_API_KEY lives on the server and is shared by everyone who can reach the HTTP endpoint — it is not per-ChatGPT-user. Always set MCP_HTTP_AUTH_TOKEN (or put the server behind your own auth) before exposing it publicly; otherwise anyone with the URL can spend your NeuralVerge points.

Manual testing

You can exercise the server with the official MCP Inspector:

NEURALVERGE_API_KEY=your_api_key_here npm run inspector

The Inspector's "HTTP" connection mode also works against the http transport (point it at http://localhost:8787/mcp), which is a convenient way to sanity-check the ChatGPT-facing path without a real ChatGPT connector.

Error handling

The NeuralVerge API returns these status codes, which this server surfaces as MCP tool errors with a descriptive message:

Status

Meaning

400

Bad Request — invalid body/parameters. Not retryable without fixing the request.

401

Unauthorized — missing/invalid/expired token. Check NEURALVERGE_API_KEY.

402

Payment Required — plan or usage limits reached (out of points).

404

Not Found — invalid session id or inaccessible resource.

500

Internal Error — upstream/provider issue. Safe to retry.

Project structure

src/
  client.ts   # thin fetch wrapper: auth header, error mapping
  tools.ts     # all 16 MCP tool definitions (input schemas + handlers)
  index.ts     # MCP server bootstrap (stdio transport, or Streamable HTTP if MCP_TRANSPORT=http)

License

MIT — see LICENSE.

Available Tools

16 tools
get_session_statusA

Returns the current status of an AI Research or AI Agent session (queued/running/complete/failed) and the final result (human-readable summary plus machine-readable JSON) once processing completes.

ParametersJSON Schema
NameRequiredDescriptionDefault
session_idYesSession identifier returned by run_research or run_agent.

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the transparency burden. It discloses the conditional nature of the final result ('once processing completes') and lists the possible statuses, which is valuable. It does not mention side effects, but the verb 'Returns' strongly implies a read-only operation.

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?

A single sentence with no fluff, front-loaded with the core action. Every clause adds useful detail about what is returned and when.

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 one-parameter getter with no output schema, the description fully explains the return value (status and result format). It covers the scope of the tool sufficiently and leaves no major gaps for an agent to invoke 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?

The schema already provides a fully descriptive comment for session_id (100% coverage), so the description adds no extra parameter information. Baseline 3 is appropriate because the schema does the heavy lifting and the description does not contradict or expand it.

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 it 'Returns the current status' of a session, enumerating the exact statuses and the final result. It is unmistakably a status-checking tool, distinct from the run_* sibling tools that initiate sessions.

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 implies usage after starting a session (via run_research or run_agent) by referencing those session types, and the schema clarifies the session_id source. However, it does not explicitly state when not to use it or mention alternatives, though none really exist for this purpose.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

run_agentA

Runs a saved NeuralVerge agent (a reusable, preconfigured workflow) by its agentId and returns a session_id immediately. Poll get_session_status with that session_id until status is 'complete' or 'failed'.

ParametersJSON Schema
NameRequiredDescriptionDefault
agentIdYesUUID of the saved agent to run.
settingsYesAgent run settings.
instructionsYesInstructions passed to the agent for this run.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses the asynchronous behavior (returns session_id immediately instead of waiting for completion) and explicitly instructs to poll until 'complete' or 'failed'. This is critical context since no annotations exist. It does not cover side effects like cost or auth, but the core execution model is well explained.

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 exactly two sentences with the primary action and return value in the first and the polling instruction in the second. There is no filler, and it is front-loaded with the key information, making it highly concise and well-structured.

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?

Given that there is no output schema, the description appropriately explains the return value (session_id) and the necessary follow-up polling workflow. It complements the schema by covering the overall lifecycle. It could mention error handling beyond 'failed', but the current guidance is sufficient for the tool's moderate complexity.

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 provides 100% coverage with descriptions for all three parameters (agentId, settings, instructions), so the baseline is 3. The tool description adds no extra parameter semantics beyond mentioning agentId in the narrative, which does not enhance the schema's own description.

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 the action (runs a saved agent), the resource (a preconfigured NeuralVerge agent identified by agentId), and the immediate result (returns a session_id). It also distinguishes this tool from siblings like run_research or run_search by focusing on running a reusable, preconfigured workflow rather than a specific task.

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 provides clear context: you use this tool when you have a saved agentId and want to execute it. It also instructs to poll get_session_status afterward, which is a useful follow-up guidance. However, it does not explicitly mention alternatives or when not to use it, so it falls 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.

run_crunchbase_companyA

Fetches structured company data (website, location, founding year, employees, industries, funding, description) from a Crunchbase company URL.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesCrunchbase organization URL, e.g. https://www.crunchbase.com/organization/openai

TDQS

A4/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 accurately indicates a read operation and lists the data fields returned, but it does not disclose any potential errors (e.g., invalid URL), rate limits, or the exact return format, leaving some uncertainty.

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 a single, concise sentence that front-loads the action and resource. Every word earns its place, with no unnecessary detail.

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 one-parameter fetch tool, the description covers the purpose and lists the expected output fields. Since there is no output schema, the description provides necessary context, though it omits details about error handling and exact return structure.

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 fully describes the single parameter 'url' with a concrete example, achieving 100% coverage. The description adds no additional parameter semantics beyond what the schema already provides.

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 the tool's function: it fetches structured company data from a Crunchbase company URL. The verb 'Fetches' is specific, and the resource and source are explicitly defined, distinguishing it from sibling tools like run_linkedin_company_search.

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 makes the usage context clear: use this tool when you have a Crunchbase company URL and need company data. It does not explicitly mention alternatives or exclusions, but given the narrow scope, the guidance is adequate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

run_email_enrichmentA

Enriches a known email address with associated profile data (name, phone, company, position, LinkedIn/X profiles) when available.

ParametersJSON Schema
NameRequiredDescriptionDefault
emailYesEmail address to enrich.

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full responsibility for behavioral disclosure. It notes data is returned 'when available', but does not state whether the operation is read-only, requires special authentication, can fail for invalid/disposable emails, or what side effects (if any) occur. This opacity could lead an agent to misuse the tool or misinterpret errors.

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 a single, front-loaded sentence that conveys purpose and key data fields without excess words. No fluff or repetition—every element earns its place.

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 description covers the tool's core function and expected outputs, but with no output schema and no annotations, it omits return format (e.g., JSON structure), error behavior for invalid emails, and any rate-limit or permission notes. Given the tool's simplicity (one parameter), this is sufficient but not rich; there is clear room for additional context.

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 provides 100% coverage for the sole parameter 'email' with a clear description. The tool description adds only the qualifier 'known' and the list of profile data, which does not materially enhance parameter understanding beyond the schema. Baseline 3 is appropriate given full 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 specifies a clear action ('Enriches') and resource ('known email address'), and enumerates the exact data returned (name, phone, company, position, LinkedIn/X profiles). This distinguishes it from sibling tools like run_email_validation (validates) and run_email_finder (finds), making its purpose unambiguous.

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 to use this tool: when you already have a known email and want associated profile data. However, it does not explicitly contrast with alternatives (e.g., run_email_finder when you lack an email, run_phone_enrichment for phone-only data) or state when not to use it. The context is clear but under-specified.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

run_email_finderB

Finds a professional email address for a person given their company domain, first name, and last name.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesCompany domain, e.g. openai.com
last_nameYesPerson's last name.
first_nameYesPerson's first name.

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 of behavioral disclosure. It only states the high-level outcome and does not mention what happens when no email is found, whether the result is verified, limitations, rate limits, or any other behavioral details an agent would need to handle edge cases.

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 a single, clear, front-loaded sentence with no filler. Every word earns its place, and it is appropriately concise for the simplicity of the 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?

Given the simple lookup nature and complete schema, the description covers the basic purpose and inputs. However, since there are no annotations and no output schema, it omits return-value details and not-found or error behavior, leaving some ambiguity for an agent choosing and invoking the tool.

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 describes all three parameters with 100% coverage, so the baseline is 3. The description merely restates 'company domain, first name, and last name' without adding extra format details, constraints, or relationships beyond what the schema already provides.

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 ('Finds') and a clear resource ('a professional email address for a person'), and lists the three required inputs. It clearly communicates the tool's function, but it does not explicitly differentiate from similar sibling tools like run_email_enrichment or run_linkedin_email.

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 choose this tool over alternatives such as run_email_enrichment or run_email_validation. The phrase 'given their company domain, first name, and last name' implies a precondition, but there are no explicit use cases, exclusions, or alternative recommendations, which is a significant gap given the large sibling set.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

run_email_validationA

Validates an email address and returns deliverability signals (valid/invalid/risky, catch-all detection, provider, confidence).

ParametersJSON Schema
NameRequiredDescriptionDefault
emailYesEmail address to validate.

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the burden of explaining behavior. It discloses the return types, which is useful, but it does not mention whether this is a real-time network check, whether any email is sent, or any side effects or limitations. Basic transparency is present but not rich.

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 a single, concise sentence that front-loads the primary action and immediately lists the output categories. No redundant or vague wording is present.

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?

With only one parameter and no output schema, the description adequately explains the return values by enumerating deliverability signals, which is essential for the user. It could go slightly deeper (e.g., confidence scale), but for a simple tool it is sufficiently complete.

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 coverage is 100%: the only parameter 'email' is already well described as 'Email address to validate.' The description adds no extra parameter semantics beyond that, so the baseline of 3 applies.

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 the tool's function ('Validates an email address') and lists specific output signals (valid/invalid/risky, catch-all detection, provider, confidence). This verb+resource combination distinguishes it from sibling tools like email finder or enrichment, which serve different purposes.

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 usage when an email address needs deliverability checking, but it does not explicitly contrast with alternatives such as run_email_finder or run_email_enrichment. Sibling distinction is left to the tool name and context rather than stated in the description.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

run_extractA

Loads a webpage by URL and extracts structured data from it according to natural-language instructions and/or a JSON schema. Synchronous — returns the result immediately.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesURL of the page to load and extract data from.
settingsYesExtraction settings.
instructionsYesNatural-language description of what to extract.

TDQS

A4/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 full burden. It discloses that the tool is synchronous ('returns the result immediately') and that it performs a read-like operation, but it does not mention rate limits, timeout behavior, or error handling. While it is not destructive, a little more context on runtime constraints would improve 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?

The description is only two sentences, front-loads the core purpose, and includes a relevant behavioral note about being synchronous. There is zero filler, and every word contributes to the understanding of the tool.

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?

Given the tool has no output schema, the description adequately indicates that the result will be extracted structured data, but it does not specify the exact response structure. For a relatively straightforward extraction tool, this is sufficient; however, a detail about the response format would make it fully complete.

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 provides 100% coverage, with descriptions for all three parameters. The description adds a helpful synthesis by explaining that instructions and/or a JSON schema guide extraction, but it does not add new details about parameter formats or edge cases. The baseline of 3 is appropriate because the schema does most of the work.

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 identifies the tool as one that loads a webpage and extracts structured data, using specific verbs ('loads', 'extracts') and resources ('URL', 'structured data'). It is distinct from sibling tools like run_search or run_research, which focus on other operations, so there is no confusion about its purpose.

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 implies when to use the tool: whenever structured data extraction from a webpage is needed, with input via natural-language instructions and/or a JSON schema. It does not explicitly mention alternatives or exclusions, but the context is clear enough for an agent to select this tool for extraction tasks.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

run_linkedin_company_employeeA

Searches LinkedIn employees of one or more given companies, using the same people-style filters as run_linkedin_people_search.

ParametersJSON Schema
NameRequiredDescriptionDefault
companiesYesLinkedIn company URLs or names to search employees of.
locationsNo
startPageNo
maxResultsNo
industryIdsNo
scraperModeNo
searchQueryNoFree-text search query.
pastJobTitleNo
functionFilterNo
seniorityLevelFilterNo
currentJobTitleFilterNo
companyHeadcountFilterNo
yearsOfExperienceFilterNo
yearsAtCurrentCompanyFilterNo

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must disclose behavioral traits. It only states 'Searches' with no details on output, authentication, rate limits, or side effects. This is a minimal disclosure for a tool that likely performs network requests and returns data, so significant behavioral context is missing.

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 exactly one sentence, front-loaded with the primary action, and every phrase adds meaning. The reference to the sibling tool is concise and avoids repeating filter names. No fluff or redundancy.

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?

With 14 parameters, no output schema, and no annotations, the description is far too sparse. It doesn't mention required vs optional fields, result format, or any usage examples. The only context is the link to run_linkedin_people_search, which is helpful but insufficient for such a complex tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 14%, so the description should compensate by explaining parameters. It only mentions 'one or more given companies' (covering the required companies param) and vaguely references 'people-style filters' without listing any specific filter names or meanings. This does little to help an agent select parameters correctly.

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 a specific verb ('Searches'), a clear resource ('LinkedIn employees of one or more given companies'), and explicitly distinguishes itself from the sibling run_linkedin_people_search by scoping to companies. The phrase 'using the same people-style filters' further clarifies it's a variant of people search, not a general search.

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 defines when to use this tool: when you need employees of specific companies. It references run_linkedin_people_search to indicate filter compatibility, implying an alternative for general people searches. However, it does not explicitly state exclusions or when not to use it, so it misses a complete when/where-not.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

run_linkedin_domainA

Finds a LinkedIn profile matching a company name or domain plus a full name.

ParametersJSON Schema
NameRequiredDescriptionDefault
full_nameYesFull name of the person to find.
company_or_domainYesCompany name or domain, e.g. openai.com

TDQS

A3.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description must bear the full burden of disclosing behavioral traits. It only states that it 'finds' a profile, without mentioning output format, potential limitations (e.g., profile may not exist), whether it performs a live search, or if any external rate limits apply. This is a significant gap for an agent deciding whether to invoke the tool.

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 a single, well-structured sentence that front-loads the action ('Finds') and the key inputs. Every word earns its place, with no redundant padding.

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 tool has no output schema and no annotations, so the description must also convey what the agent can expect in return. It does not mention the return format (e.g., profile URL, profile details, or null). For a two-parameter lookup, this is a clear but incomplete description; the agent might not know how to use the result.

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 coverage is 100% because both parameters (full_name and company_or_domain) have inline descriptions. The tool description adds no new meaning beyond what the schema already provides. Per the rubric, with high schema coverage, a baseline of 3 is appropriate.

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 the tool's purpose: to find a LinkedIn profile using a company name or domain plus a full name. This is specific and distinguishes it from sibling tools like run_linkedin_people_search (which likely searches by name only) and run_linkedin_company_search.

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 provides clear context for when to use the tool: when you have both a company/domain and a full name. However, it does not explicitly name alternatives or when not to use it, unlike the high-scoring TDQS example. The context is clear but lacks explicit exclusion or alternative guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

run_linkedin_emailA

Looks up a LinkedIn profile by its full profile URL and returns contact details, including an email address when available.

ParametersJSON Schema
NameRequiredDescriptionDefault
usernameYesFull LinkedIn profile URL, e.g. https://www.linkedin.com/in/john-doe/

TDQS

A4/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 disclosure. It honestly notes that email is returned only 'when available', which is a useful caveat, but it does not address failure modes, rate limits, or whether other contact details are always present. This is minimal but nonzero 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?

The description is a single, efficient sentence that states the action, input, and output without any redundant or filler wording.

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 one-parameter tool without an output schema, the description gives the essential invocation context and a key caveat about email availability. It does not detail the exact response structure or error handling, but the tool's simplicity makes the description reasonably complete.

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 provides a thorough description of the 'username' parameter (full URL with example), giving 100% coverage. The description only reaffirms that the tool uses a full profile URL, adding marginal meaning beyond the schema, so it meets the baseline.

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 a specific verb ('looks up') and resource ('LinkedIn profile'), with a clear outcome ('returns contact details, including an email address'). It distinguishes itself from sibling search tools by specifying the input must be a full profile URL, making its scope unique.

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 clearly states the input condition ('by its full profile URL'), which implies when to use this tool versus people or company search. However, it does not explicitly name alternatives or provide exclusion guidance, so it stops short of full comparative instructions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

run_phone_enrichmentB

Enriches a known phone number with associated profile data (name, email, company, LinkedIn/X profiles, carrier) when available.

ParametersJSON Schema
NameRequiredDescriptionDefault
phoneYesPhone number in international format, e.g. +1234567890

TDQS

B3.4/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 mentions 'when available', indicating that data may not always be present, but does not disclose any other behavioral traits such as data sources, rate limits, or error handling for invalid numbers.

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 a single, clear, and front-loaded sentence. Every word serves a purpose, with no redundancy or filler.

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?

Given the tool's simplicity (one parameter, no output schema), the description adequately covers the core functionality and lists expected data fields. It could mention behavior when no data is found, but 'when available' partially addresses this.

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 description covers the only parameter fully (phone number in international format). The description adds minimal extra meaning beyond the schema, essentially restating that the number is 'known' without additional context.

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 ('enriches') and resource ('known phone number'), and lists the associated profile data types. It clearly states the tool's function, but does not explicitly differentiate from the sibling tool 'run_phone_enrichment_us', so it loses a point.

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?

Usage context is implied: use when you have a known phone number and want associated profile data. However, there is no explicit guidance on when not to use it or how it differs from siblings like 'run_phone_enrichment_us'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

run_phone_enrichment_usA

Validates and enriches a US phone number with carrier, line type, activity score, litigator risk, and owner details.

ParametersJSON Schema
NameRequiredDescriptionDefault
phoneYesUS phone number, e.g. 12069735100

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must carry the behavioral burden. It discloses the tool validates and enriches, but does not explicitly state whether it is read-only, what happens on invalid input, or if any rate limits or permissions apply. This is a moderate disclosure level for a likely read-only enrichment tool.

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 a single sentence that is front-loaded with the verb 'Validates and enriches' and is entirely free of filler. Every word adds value, and it fits the tool's simple scope.

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?

Given its simplicity (1 parameter, no output schema), the description is nearly complete. It covers what the tool does and the input requirement. It lacks guidance on when to use this vs. run_phone_enrichment for international numbers, and does not mention error handling, but for a basic enrichment tool this is satisfactory.

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 coverage is 100% - the single parameter 'phone' has a clear description and example. The tool description adds only that it's a US phone number, which is already in the schema, so no extra meaning is provided beyond reinforcing the format.

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 the tool validates and enriches a US phone number, listing specific outputs: carrier, line type, activity score, litigator risk, and owner details. It distinguishes from sibling tools like run_phone_enrichment (non-US) and other enrichment tools by focusing on US phone numbers and specific enrichments.

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 says 'US phone number', giving clear context that this tool is for US numbers. However, it does not explicitly state when NOT to use it or mention alternatives like run_phone_enrichment for non-US numbers. The clear context earns a 4, but absence of exclusions keeps it from a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

run_researchA

Starts the full NeuralVerge AI research workflow (multi-step search, analysis, and structured reporting) and returns a session_id immediately. Poll get_session_status with that session_id until status is 'complete' or 'failed'.

ParametersJSON Schema
NameRequiredDescriptionDefault
settingsYesResearch run settings.
instructionsYesMain research task, in natural language.

TDQS

A4/5.0
Behavior3/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. It discloses that the operation is asynchronous (returns session_id immediately), that it is multi-step, and that the eventual status can be 'complete' or 'failed'. However, it does not mention potential side effects, prerequisites, or what happens after completion, leaving some transparency gaps for an operation that starts a large workflow.

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 sentences long, front-loaded with the main purpose, and includes essential follow-up action (poll get_session_status). Every word adds value, with no redundancy or filler.

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?

Given the tool's async complexity and lack of annotations/output schema, the description covers the essential flow: start the workflow, receive a session_id, and poll until a terminal status. It could mention what the final result looks like or the scope of the workflow, but it is reasonably complete for an entry-point tool, especially since get_session_status is a sibling that likely covers the rest.

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 fully documents the 'instructions' and 'settings' parameters. The description adds no additional parameter-specific meaning; it only restates that instructions are a natural-language task and settings are for the run. This meets the baseline for high schema coverage but does not exceed it.

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 the tool 'Starts the full NeuralVerge AI research workflow' with a specific verb and resource, and distinguishes it from sibling tools by highlighting the multi-step, full-workflow nature and the immediate return of a session_id. It explicitly mentions polling get_session_status, which clarifies its unique role among the sibling tools.

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 provides clear usage context: it is the entry point for the full research workflow and should be followed by polling get_session_status. It does not explicitly list when to avoid using it or alternatives, but the distinction from more specific search/extract tools is implied. This is clear context without explicit exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

TDQS

A3.5/5.0
Disambiguation3/5

Multiple tools target similar actions (email finder vs LinkedIn email, people vs company employee search, phone vs US phone enrichment), and async workflows (research vs agent) are easy to confuse. Descriptions help clarify, but boundaries between tools are not always sharp.

Naming Consistency3/5

Strong run_ prefix creates a consistent feel, but suffixes mix verb-style (search, extract) and noun-style (email_finder, phone_enrichment_us) naming. The outlier get_session_status breaks the run_ pattern, and run_linkedin_domain is misleading (it does not search by domain).

Tool Count4/5

With 16 tools, this is slightly above the typical 3-15 range, but the server covers distinct domains (research, search, LinkedIn, email, phone, Crunchbase), so each tool earns a place. The count feels justified for a comprehensive enrichment platform, though it borders on heavy.

Completeness4/5

Core data retrieval surfaces are well covered: research workflow, search, extraction, LinkedIn, email, phone, and company data. Notable gaps include no agent management (list/create agents) and no session control (cancel/pause), but most practical workflows are supported.

Maintenance

ActivityMaintained
ResponsivenessSyncing

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

Related MCP Servers

  • A
    license
    Not graded
    quality
    Not graded
    maintenance
    Exposes over 19,000 Apify Actors as MCP tools for web scraping, data extraction, and OSINT automation. It enables AI agents to dynamically discover and execute scrapers to collect structured data and crawl web content.
  • A
    license
    Not graded
    quality
    D
    maintenance
    Automatically loads Mixpeek's OpenAPI spec and exposes its endpoints as MCP tools, enabling natural language interaction with Mixpeek's API via standard MCP clients.
    39
    1
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    Exposes any REST API as MCP tools, enabling AI agents to discover and call existing HTTP endpoints without modifying the original API.

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/neuralverge/neuralverge-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server