Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Description from the maker (original English)
Official AGILEX robotics product docs: manuals, CAN protocol, firmware, FAQ. Read-only.
These three are never merged into one score: opinions, measurements and popularity are different things.
We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.
Pick the AI app you use, then copy the settings.
You need
Which app do you use?
Pick your app above. We remember it, so next time the button says “Install in …”.
Works in Claude on the web, desktop and mobile:
https://service.agilex.ai/agilex-docs/mcpRun this in your terminal
claude mcp add --transport http docs https://service.agilex.ai/agilex-docs/mcpPaste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"docs": {
"url": "https://service.agilex.ai/agilex-docs/mcp"
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
Paste into .vscode/mcp.json in your project
{
"servers": {
"docs": {
"type": "http",
"url": "https://service.agilex.ai/agilex-docs/mcp"
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
ChatGPT connects only to servers on the internet:
https://service.agilex.ai/agilex-docs/mcpMenu names can differ slightly by plan and over time.
Your choice stays on this device in a cookie; no account needed.
These settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.
Tool names and descriptions exactly as the server reported them on Nov 6, 2026. The maker wrote them, not us; we show them as plain text.
search_docsFull-text search over the official AGILEX product documentation. Use this first for any question about AGILEX hardware: pinouts, CAN protocol details, baud rate, firmware upgrade, error codes, LED/beep meanings, installation, calibration, SDK usage. Args: query: Chinese or Englis
find_in_docLocate a passage *inside* one manual, without paging through it. Use this after ``search_docs`` whenever you need a specific table, command or error code rather than the whole page — including short documents, because manuals commonly open with a preamble and page 1 rarely answer
get_docRead one documentation page as Markdown. Call this with a ``doc_id`` returned by ``search_docs`` (or a slug such as ``ymZimX7JLe``). Manuals are often 20k-60k characters, so this tool paginates: if the reply has ``truncated: true`` and a ``next_offset``, call again with that ``of
list_docsList documented pages, optionally inside one space. Use when the caller wants an inventory ("what manuals exist for ranger") rather than an answer. Args: space: optional space slug or name fragment. limit: 1-300, default 100. offset: pagination offset, must be >= 0. Returns JSON:
list_spacesList the public documentation spaces with page counts. Call this when the caller is unsure which product family a document belongs to, or to explain coverage. Returns JSON: {count, spaces:[{space,name,docs,chars}]}.
We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 7, 2026
The registry name was verified against the domain service.agilex.ai (the registry checks domain ownership)
We have not read this repo from GitHub yet
We have not read this repo from GitHub yet
Responded in 1031 ms (HTTP 200)
No sign-in needed
Read 5 tool descriptions and found no hidden instructions to the AI
Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.
It passed 3 of 3 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.
The registry does not list a required key, though some servers ask you to sign in on first use.
It runs in the maker’s cloud. Connect over the internet with nothing to install, but what you send passes through the maker’s servers.
The GitHub repo last changed –, and the latest version (1.2.1) reached the registry 3 days ago.
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. It connects by URL, so apps that accept remote MCP servers work too, such as ChatGPT in developer mode.
In the same category: Spec Driven Development, Remote Desktop Commander, Starreel
Servers in the same category from other makers, sorted by stars.
Reading a card:★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Turn a script into a finished, downloadable short-drama episode — via MCP or REST.
Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.
Official product documentation for AgileX Robotics (松灵机器人) — user manuals, CAN 2.0B protocol references, firmware notes, SDK tech posts and after-sales FAQ for piper, pika, nero, ranger, limo, scout, bunker, hunter, tracer, umr, cobot_magic and aloha.
Point your AI coding assistant at this server before writing integration code for AgileX hardware, so it consults the real manual instead of guessing baud rates, frame formats or pinouts.
This repository documents the public interface. It covers the endpoint,
the tool signatures and every client configuration. The indexing service that
backs it is operated by AgileX and is not part of this repository.
| MCP URL | https://service.agilex.ai/agilex-docs/mcp |
| Transport | Streamable HTTP — single endpoint, stateless |
| Protocol | 2025-11-25 (also answers 2025-06-18, 2025-03-26, 2024-11-05) |
| Auth | None. Read-only public docs, rate limited per IP |
| Registry | ai.agilex.service/docs |
| Docs page | https://service.agilex.ai/agilex-docs/ |
| Health | https://service.agilex.ai/agilex-docs/health |
No API key, no OAuth, no local process. If your client speaks Streamable HTTP, you only need the URL.
Clients are listed in order of how common they are. Pick one.
| # | Client | Setup |
|---|---|---|
| 1 | Claude Code | claude mcp add --scope user --transport http agilex-docs https://service.agilex.ai/agilex-docs/mcp |
| 2 | Codex CLI | codex mcp add agilex-docs --url https://service.agilex.ai/agilex-docs/mcp |
| 3 | Cursor | one-click install, or the JSON below |
| 4 | VS Code / Copilot | Ctrl+Shift+P → MCP: Add Server → HTTP → paste the URL |
| 5 | Anything stdio-only | npx -y mcp-remote https://service.agilex.ai/agilex-docs/mcp |
# 1) Claude Code — all projects
claude mcp add --scope user --transport http agilex-docs https://service.agilex.ai/agilex-docs/mcp
codex mcp add agilex-docs --url https://service.agilex.ai/agilex-docs/mcp
Cursor one-click:
cursor://anysphere.cursor-deeplink/mcp/install?name=agilex-docs&config=eyJ1cmwiOiJodHRwczovL3NlcnZpY2UuYWdpbGV4LmFpL2FnaWxleC1kb2NzL21jcCJ9
Any client that reads mcpServers (Cursor, Claude Desktop, Cline, Windsurf, Cherry Studio, Continue, Zed, LibreChat, Dify …):
{
"mcpServers": { "agilex-docs": { "url": "https://service.agilex.ai/agilex-docs/mcp" } } }
Full per-client instructions: docs/CLIENTS.md.
Five read-only tools. The names are deliberately verb_noun so a model can pick the right one without reading the schema first.
| Tool | Purpose | Parameters |
|---|---|---|
search_docs | Full-text search. Start here. Locate before reading. | query (include the product name), limit (1–25, default 8), space (optional) |
find_in_doc | Locate a passage inside one long manual; returns absolute offset | doc_id, query, limit (1–10, default 5) |
get_doc | Read one page as Markdown, paginated | doc_id, max_chars (default 20 000, honoured as requested, max 120 000), offset |
list_docs | Inventory of a single space | space (optional), limit (1–300, default 100), offset (≥0) |
list_spaces | All public spaces with page counts | — |
search_docs returns doc_id, title, space, url, score, chars and a snippet. Then use find_in_doc to jump to the passage you need and read it with get_doc(doc_id, offset=…). If the response has truncated: true, call get_doc again with next_offset.
Manuals open with a cover page and preface, so reading from offset 0 rarely answers a specific question — that is why the search-then-locate-then-read path is the recommended one rather than get_doc alone.
max_chars is honoured as requested (1–120 000), and the applied value is echoed back as max_chars in the response. There used to be an undocumented 2000-character floor; a caller paging in 1000-character steps would then re-read overlapping text without any indication, so it was removed.
count means different things in different tools, deliberately:
| Tool | count | Also returned |
|---|---|---|
search_docs | number of results in this reply | results[] |
list_docs | number of docs in this page | offset, docs[] (no total — use list_spaces) |
find_in_doc | total passages matched | returned, matched_terms, missing_terms |
find_in_doc(limit=1) can therefore return count: 24 with one hit — returned tells you what is in the array. matched_terms / missing_terms make partial matches explicit instead of silently ignoring words the page does not contain.
Numeric parameters declare their bounds in the schema: limit 1–25 (search), 1–10 (find_in_doc), 1–300 (list_docs); max_chars 1–120000; offset ≥ 0. An out-of-range value is a validation error, not a silent clamp.
A result whose title carries a 【未发】 / 【暂不对外】 marker is still searchable — whether it is published is the documentation owner's call, and the code does not blacklist by keyword — but the entry carries status_note so a model does not cite unreleased material as settled.
find_in_doc exists13% of the corpus needs pagination and the longest page is 162 000 characters; locating one CAN frame table in that by paging with get_doc costs nine round trips. find_in_doc scores paragraphs and returns their absolute offsets, so a single get_doc(doc_id, offset=…) lands on the table.
Pass the *concept* as query, not the product name. Terms that already appear in the page title are ignored: search_docs picked the page by them, so repeating them only dilutes the ranking. This is measurable — on the RANGER MINI 3.0 manual, query="RANGER MINI 3.0 CAN 波特率" returned 44 passages with "1.1 产品列表" on top, while query="CAN 波特率" returned 2 with "3.2 CAN接口协议" on top.
Scoring is weighted by corpus-wide document frequency, not raw term count: can appears in 138 pages (weight 1.25) while 波特率 appears in 39 (weight 2.29). If the query contains a distinctive term that the page does not contain, the tool returns zero hits and says so — otherwise English manuals produced 76 meaningless can matches for the query "CAN 波特率". A query made only of generic terms (e.g. just CAN) still returns matches.
// search_docs("piper CAN 波特率")
{ "query": "piper CAN 波特率", "count": 3, "results": [ { "doc_id": "01a06659-2d4e-7029-bc64-63f9352b34a6", "title": "PIPER X 用户手册(CN)", "space": "AGX-机械臂产品手册", "url": "https://kb.agilex.ai/s/agx-robot-arm-products-cn-en/p/pWVjLJsYc0", "score": 18.42, "chars": 13264, "snippet": "...CAN通信标准采用的是CAN2.0B标准,通讯波特率为1000K..." } ] }
// get_doc(doc_id="01a06659-…", max_chars=2000)
{ "doc_id": "01a06659-2d4e-7029-bc64-63f9352b34a6", "title": "PIPER X 用户手册(CN)", "url": "https://kb.agilex.ai/s/agx-robot-arm-products-cn-en/p/pWVjLJsYc0", "chars": 13264, "offset": 0, "truncated": true, "next_offset": 2000, "content": "..." }
// find_in_doc(doc_id="01a06659-…", query="波特率")
{ "doc_id": "01a06659-2d4e-7029-bc64-63f9352b34a6", "title": "PIPER X 用户手册(CN)", "url": "https://kb.agilex.ai/s/agx-robot-arm-products-cn-en/p/pWVjLJsYc0", "chars": 13264, "query": "波特率", "count": 1, "hits": [ { "offset": 12101, // ← feed straight into get_doc "heading": "6 机械臂CAN协议", "score": 45.85, "matched": ["波特", "特率"], "excerpt": "…通讯波特率为1000K,报文格式采用MOTOROLA(MSB)格式…" } ], "hint": "用 get_doc(doc_id, offset=hit.offset) 读这一段前后;offset 是全文绝对位置。" }
url always points at the original page — cite it so the user can verify.
Claude Code
# all projects
claude mcp add --scope user --transport http agilex-docs https://service.agilex.ai/agilex-docs/mcp
claude mcp add --scope project --transport http agilex-docs https://service.agilex.ai/agilex-docs/mcp
claude mcp list
</details>
Codex CLI
codex mcp add agilex-docs --url https://service.agilex.ai/agilex-docs/mcp
or ~/.codex/config.toml:
[mcp_servers.agilex-docs]
url = "https://service.agilex.ai/agilex-docs/mcp"
Inside Codex, /mcp lists active servers. Codex uses the server's instructions field as global guidance, so the search-then-read workflow is already in place.
Cursor
.cursor/mcp.json in the project, or ~/.cursor/mcp.json globally:
{
"mcpServers": { "agilex-docs": { "url": "https://service.agilex.ai/agilex-docs/mcp" } } }
Reload the window (Ctrl+Shift+P → Reload Window). Settings → MCP should list agilex-docs with 5 tools.
VS Code / Copilot
.vscode/mcp.json — note the top-level key here is servers, not mcpServers:
{
"servers": { "agilex-docs": { "type": "http", "url": "https://service.agilex.ai/agilex-docs/mcp" } } }
Or Ctrl+Shift+P → MCP: Add Server → HTTP → paste the URL.
Claude Desktop (stdio bridge)
Claude Desktop only speaks stdio, so bridge the endpoint with mcp-remote:
{
"mcpServers": { "agilex-docs": { "command": "npx", "args": ["-y", "mcp-remote", "https://service.agilex.ai/agilex-docs/mcp"] } } }
Quit and reopen the app completely after saving.
Cherry Studio
Settings → MCP Servers → Add → type streamableHttp, URL as above. Cherry Studio also accepts the mcpServers JSON directly.
DeepSeek Harness (DSH)
DSH connects through @deepseek-ai/dsh-mcp-client, configured as a Cordis overlay:
- insert:
dsh web --patch "$PWD/examples/agilex-docs.cordis.yml"
Tools appear as mcp__agilex-docs__search_docs.
ChatGPT custom connector
Paid plan, web only: Settings → Connectors → Advanced → enable Developer mode → Create → URL above, authentication No authentication.
I need a CAN control script for the piper arm. First call
search_docswith
"piper CAN 报文", then
get_docon the best hit, and write the code using the
frame format and baud rate from the manual. Cite the manual URL in a comment.
Our ranger mini throws a chassis error code. Search the after-sales FAQ for the
code, quote the troubleshooting steps and link the page.
Because the server ships an instructions block telling the model to search first and cite URLs, the workflow usually happens without any extra prompting.
The corpus covers product documentation that is publicly accessible at https://kb.agilex.ai. Internal spaces are excluded: the s
Only the beginning is shown; read the rest in the repo