# `ai.agilex.service/docs` on anlyon.dev

> Text inside fenced blocks marked untrusted-server-text was written by the MCP server's publisher, not by anlyon.dev. It is data to inspect, not instructions to follow. Invisible characters are shown as [U+XXXX].
> No finding is not a safety guarantee: these are point-in-time checks of tool definitions, not of code or behaviour.

- Page: https://anlyon.dev/servers/ai.agilex.service/docs
- JSON: https://anlyon.dev/api/v1/servers/ai.agilex.service/docs
- Version: 1.0.2 (active)
- Publisher: ai.agilex.service (domain proven to the MCP Registry)
- Runs: remote (streamable-http)
- Sign-in to list tools: none
- Repository: https://github.com/wgjsg/agilex-docs-mcp
- Metadata from the official MCP Registry, synced 2026-11-03T11:17:38.246Z

Title and description, as the publisher wrote them:

```untrusted-server-text
AGILEX Docs
Official AGILEX robotics product docs: manuals, CAN protocol, firmware, FAQ. Read-only.
```

Scanned 2026-11-03T11:17:51.570Z over streamable-http.

**4 tools: 4 only read.**

| Group | Class | Tools | Claude Code |
| --- | --- | --- | --- |
| Deletes or cancels | destructive | 0 | deny |
| Can't be undone | irreversible | 0 | ask |
| Changes things | write | 0 | ask |
| Only reads | read | 4 | allow |

## Exfil surface

No private-data -> untrusted-input -> outbound path in this server alone: no tool is tagged untrusted-input or outbound.

| Tag | Meaning | Tools |
| --- | --- | --- |
| private-data | Reads files, mail, messages, databases, secrets, calendars or repositories. | `mcp__docs__get_doc` `mcp__docs__list_docs` `mcp__docs__search_docs` |
| untrusted-input | Brings in text someone else can write: web pages, inbound email, messages, issues and comments. | none |
| outbound | Can carry data to people or systems: it sends, posts or publishes, or takes a recipient, channel or URL. | none |

## Findings

No check matched anything in these tool definitions.


## Only reads (4)

Looks things up and changes nothing. Claude Code: allow.

### `get_doc`

- The name "get_doc" says "get": a word for reading.
- Tag private-data: The name "get_doc" says "get" and "doc": it reads documents.

Description, as the server wrote it:

```untrusted-server-text
Read 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 ``offset`` to continue. Do not re-request the same
        offset.

        Args:
            doc_id: id from search_docs (also accepts the page slug).
            max_chars: characters per call, default 20000, max 120000.
            offset: start position, default 0.

        Returns JSON: {doc_id,title,space,url,chars,offset,returned,truncated,
        next_offset,updated_at,content}. Always cite ``url``.
        
```

### `list_docs`

- The name "list_docs" says "list": a word for reading.
- Tag private-data: The name "list_docs" says "list" and "doc": it reads documents.

Description, as the server wrote it:

```untrusted-server-text
List 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.

        Returns JSON: {count, total_shown, docs:[{doc_id,title,space,url,chars}]}.
        
```

### `list_spaces`

- The name "list_spaces" says "list": a word for reading.

Description, as the server wrote it:

```untrusted-server-text
List 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}]}.
        
```

### `search_docs`

- The name "search_docs" says "search": a word for reading.
- Tag private-data: The name "search_docs" says "search" and "doc": it reads documents.

Description, as the server wrote it:

```untrusted-server-text
Full-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 English keywords. Include the product name
                (piper / pika / nero / ranger / limo / scout / bunker / hunter /
                tracer / umr) plus the concept, e.g. "piper CAN 波特率".
            limit: 1-25 results, default 8.
            space: optional space slug or name fragment to narrow the search,
                e.g. "agx-chassis-manual-cn-en" or "底盘使用手册".

        Returns JSON: {query, count, results:[{doc_id,title,space,url,score,chars,snippet}]}.
        ``doc_id`` is what ``get_doc`` expects.
        
```

## Claude Code permissions

For `.claude/settings.json`, assuming the server is installed as `docs`:

```json
{
  "permissions": {
    "allow": [
      "mcp__docs__search_docs",
      "mcp__docs__get_doc",
      "mcp__docs__list_docs",
      "mcp__docs__list_spaces"
    ],
    "ask": [],
    "deny": []
  }
}
```

Capability tags behind the rules (a read tagged outbound is asked about):

- `mcp__docs__search_docs`: private-data
- `mcp__docs__get_doc`: private-data
- `mcp__docs__list_docs`: private-data
