AgentSearch MCP
This server provides MCP tools for web search and URL extraction via AgentSearch.
agentsearch_web_search: Perform web searches with a required query and optional max_results (1–10, default 5); works in direct (local/self-hosted AgentSearch) or portal (Pocket Network) mode and returns structured JSON results.
agentsearch_extract: Extract content from an absolute URL using POST /v1/extract (direct mode only); optional formats array (e.g. markdown, text) and max_chars limit.
Supports configuration via environment variables: AGENTSEARCH_MODE, AGENTSEARCH_BASE_URL, and optional AGENTSEARCH_API_KEY.
Handles portal 402 errors with a clear x402 payment message and skips network calls for extract in portal mode.
Runs as a stdio MCP server for use with Cursor, Claude Desktop, and other MCP hosts.
Read-only HTTP operations suitable for agent-driven search and content retrieval.
agentsearch-mcp
MCP (Model Context Protocol) server that exposes AgentSearch web search — and optional URL extract — to Cursor, Claude Desktop, and other MCP hosts over stdio.
AgentSearch is a web-search API aimed at agents. You can run it against a local/self-hosted AgentSearch instance (direct mode) or the Pocket Network agent portal (portal mode).
Portal search endpoint (reference):
POST https://agent.pocket.network/v1/agentsearch-web-search-v1/v1/search
body:{ "query": "...", "max_results": 5 }Direct search:
POST {AGENTSEARCH_BASE_URL}/v1/searchwith the same bodyDirect extract:
POST {AGENTSEARCH_BASE_URL}/v1/extract
Pocket explorer: agentsearch-web-search-v1
Discovery: This package is free to list and use. There is no paid promotion channel — discovery comes from MCP Registry / Smithery / Glama listings and real usage.
Tools
Tool | Args | Description |
|
| Web search in direct or portal mode. Returns pretty-printed JSON. Use for a query; use extract when you already have a URL. Read-only HTTP. |
|
| Page extract via |
On portal HTTP 402, the search tool returns a clear MCP error that x402 payment is required (or switch to AGENTSEARCH_MODE=direct). In portal mode, agentsearch_extract does not call the network; it returns an MCP error telling you to switch to direct mode or use search.
Related MCP server: Grok Search MCP
Requirements
Node.js 20+
An AgentSearch backend for
directmode (defaulthttp://127.0.0.1:8000), or portal access forportalmode
Install & build
cd agentsearch-mcp
npm install
npm run buildScripts: build → tsc, start → node dist/index.js, prepare → runs build (for publish).
Binary: agentsearch-mcp → dist/index.js
Environment variables
Variable | Default | Notes |
|
|
|
|
| Direct mode base URL (no trailing slash) |
| (empty) | Optional |
See .env.example. Never commit a real .env.
Cursor mcp.json
Project (.cursor/mcp.json) or user (~/.cursor/mcp.json / Cursor Settings → MCP):
{
"mcpServers": {
"agentsearch": {
"command": "node",
"args": [
"C:/Users/Holla/OneDrive/Desktop/AgentSearch/agentsearch-mcp/dist/index.js"
],
"env": {
"AGENTSEARCH_MODE": "direct",
"AGENTSEARCH_BASE_URL": "http://127.0.0.1:8000"
}
}
}
}After npm install && npm run build, optionally use the bin:
{
"mcpServers": {
"agentsearch": {
"command": "npx",
"args": ["-y", "agentsearch-mcp"],
"env": {
"AGENTSEARCH_MODE": "direct",
"AGENTSEARCH_BASE_URL": "http://127.0.0.1:8000"
}
}
}
}(Local path form is recommended until the package is published to npm.)
Optional API key (direct only):
"env": {
"AGENTSEARCH_MODE": "direct",
"AGENTSEARCH_BASE_URL": "http://127.0.0.1:8000",
"AGENTSEARCH_API_KEY": "your-key-here"
}Claude Desktop
Edit Claude Desktop config (claude_desktop_config.json):
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"agentsearch": {
"command": "node",
"args": [
"C:/Users/Holla/OneDrive/Desktop/AgentSearch/agentsearch-mcp/dist/index.js"
],
"env": {
"AGENTSEARCH_MODE": "direct",
"AGENTSEARCH_BASE_URL": "http://127.0.0.1:8000"
}
}
}
}Restart Claude Desktop after saving.
Local run (smoke)
npm run build
# MCP hosts spawn the process; for a quick boot check:
node dist/index.js
# (process waits on stdin — Ctrl+C to stop)Publish (high level)
No paid promo — list the package so tools can discover it via registries and usage.
npm
npm loginConfirm
name/versioninpackage.jsonnpm publish --access public(ensureprepare/buildsucceed; no secrets in the tarball)
MCP Registry
Ensure
server.jsonmatches your npm package + stdio transportFollow the MCP Registry publish flow (authenticate publisher, submit server metadata)
Verify the listing resolves
agentsearch-mcp/ stdio
Smithery
Publish with the durable helper (preferred):
npm run smithery:publishThat runs scripts/publish-smithery.mjs, which ensures agentsearch-mcp.mcpb exists (npm run mcpb:pack if missing), idempotently patches the global Smithery CLI so the deploy payload always includes a tool inputSchema object when the MCPB omitted it, then runs smithery mcp publish ./agentsearch-mcp.mcpb -n agentsearchhq/agentsearch-mcp.
MCPB note: manifest.json must omit tool inputSchema — mcpb validate rejects it. The publish helper patches the CLI payload side instead.
Manual equivalent (after CLI is patched):
npm run mcpb:pack
smithery mcp publish ./agentsearch-mcp.mcpb -n agentsearchhq/agentsearch-mcpnpm run mcpb:pack compiles TypeScript to dist/index.js, installs production dependencies, then writes agentsearch-mcp.mcpb. Check the manifest with npm run mcpb:validate. manifest.json (MCPB 0.3) launches node ${__dirname}/dist/index.js and maps optional AGENTSEARCH_MODE (default direct), AGENTSEARCH_BASE_URL (default http://127.0.0.1:8000), and sensitive AGENTSEARCH_API_KEY. smithery.yaml remains as start-command metadata. Dry-run patch detection only: node scripts/publish-smithery.mjs --dry-patch.
Glama
Submit the GitHub (or npm) package to Glama MCP directory
Link README + tools list; keep env docs in sync
License
MIT
Available Tools
2 toolsagentsearch_extractAgentSearch ExtractA
Extract page content from a URL via AgentSearch POST /v1/extract (direct mode only).
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Absolute URL to extract | |
| formats | No | Optional formats, e.g. ["markdown","text"] | |
| max_chars | No | Optional max characters to return |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the core behavior (extracting page content) and the mode constraint ('direct mode only'), which implies a non-destructive read operation. However, it does not mention return format, error behavior, rate limits, or any side effects. The added endpoint detail and mode restriction provide some value beyond the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that states the purpose, the endpoint, and a key mode constraint. Every word earns its place, with no filler or repetition. It is appropriately sized for a simple extraction tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with three well-documented parameters and a clear purpose, the description plus schema is nearly sufficient to call it correctly. However, the lack of usage guidance and behavioral details (e.g., what the response looks like, default output format) leaves some gaps, especially since there is no output schema. The description is adequate but not complete for an agent facing a choice between this and its sibling.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the parameters url, formats, and max_chars are fully described in the schema. The description adds no extra meaning about parameter usage, defaults, or interactions. Per the rubric, the baseline of 3 applies because the schema handles parameter documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Extract page content from a URL') and the specific resource (AgentSearch POST /v1/extract). It is inherently distinct from the sibling tool agentsearch_web_search, as one retrieves content from a specific URL while the other searches. The mention of 'direct mode only' adds further specificity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus agentsearch_web_search. The description does not state when extraction is preferred over search, nor does it mention any exclusions or prerequisites. The only hint is 'direct mode only', which is a mode constraint, not a usage guideline.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
agentsearch_web_searchAgentSearch Web SearchA
Search the web via AgentSearch. Uses AGENTSEARCH_MODE=direct (local API) or portal (Pocket). Returns structured JSON results.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search query string | |
| max_results | No | Max results to return (1–10, default 5) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the transparency burden and does add two behavioral facts: it can run in direct or portal mode, and it returns structured JSON. However, it does not explain how the mode is selected, what limits apply, or what the JSON contains.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the primary purpose, and each sentence adds distinct information: what the tool does, how it connects, and what it returns. No filler or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter search tool with a fully documented schema, the definition is nearly complete: it names the backend modes and the result format. The only real gap is the missing usage guideline relative to the sibling tool, which is already penalized separately.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the two parameters are already fully documented with query as a string and max_results as 1-10 default 5. The description adds no parameter-level meaning, which is acceptable at the high-coverage baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first clause, 'Search the web via AgentSearch,' names the exact action and resource. The sibling is 'agentsearch_extract,' so the verb 'search' cleanly separates this tool from extraction, no schema inspection needed.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to choose this tool over agentsearch_extract, nor any conditions where direct versus portal mode should be used. Usage context is left entirely to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
2 tool updates
v1.0.0- First observed
agentsearch_extract - First observed
agentsearch_web_search
TDQS
Scored across 2 tools
The two tools have clearly distinct purposes: one performs web searches, the other extracts page content from a given URL. There is no ambiguity about which tool to use for a given task.
Both tools share the 'agentsearch_' prefix and use snake_case, but 'web_search' follows a verb_noun pattern while 'extract' is a bare verb. This is a minor inconsistency that does not cause confusion.
With only two tools, the server feels thin for a typical MCP service, but the scope is narrow—web search and extraction—so the count is borderline rather than inappropriate. It sits just below the typical 3-15 tool range.
The tool surface covers the two core operations of the domain: searching the web and extracting content from a result URL. There are no obvious dead ends or missing operations given the stated purpose.
Maintenance
Related MCP Connectors
MCP server (stdio): fetch web pages as clean readable markdown via the AgentForge API
Scrape, crawl and search the web for AI agents via MCP.
Search the agentic web. 4,100+ sites, 11 tools incl. check_url + verify_mcp for probe-before-use.
Free web search for AI agents. No API key required. Hosted MCP in active development.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceWeb search, page fetching, and research from the terminal or any MCP client — no API key required.1MIT
- AlicenseNot gradedqualityBmaintenanceA local stdio MCP server that exposes xAI-compatible server-side search through a Responses API relay, providing web and X search tools with citation and cost reporting.20 npmMIT
- FlicenseNot gradedqualityCmaintenanceRemote MCP connector for AgentSearch API that exposes web search, instant answers, and URL-to-clean-text fetching as typed MCP tools for agents and RAG pipelines.-
- AlicenseAqualityAmaintenanceEnables AI agents to run local deep-research workflows via a single MCP stdio server, combining web search, page extraction, query-aware distillation, and caching without cloud quotas. It exposes tools for deep research, search, and single or batch URL reading.6MIT