# Manpage MCP

> Search and read Linux manual pages with version-aware lookup and exact package provenance.

- name: ai.manpage/mcp
- version: 0.2.0
- connection class: R0 (autonomous)
- trust: 83/100 flags: no-repository
- quality: 80/100 (good)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/ai.manpage%2Fmcp
- tools: https://api.protogrid.dev/v1/servers/ai.manpage%2Fmcp/tools

**An agent can connect right now, no human step.** Remote endpoint, no authentication, reachable on the last probe.

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "manpage": {
      "type": "http",
      "url": "https://manpage.ai/mcp"
    }
  }
}
```


## Trust

- hygiene: 80
- liveness: 100
- freshness: 100
- provenance: 55
- drivers: +dns-namespace +website +reachable +uptime-100% +updated-7d-ago -no-repository
- Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed.

## Quality 80/100 (good)

### protocol: 75 (weight 25)

- warn `protocol.modern`: newest supported version is 2025-11-25; 2026-07-28 not supported, older versions are deprecated until 2027-07-28
- n/a `protocol.stateless`: only applies to 2026-07-28 servers
- pass `protocol.transport`: streamable HTTP
- n/a `protocol.list_ttl`: only applies to 2026-07-28 servers

### authorization: n/a (weight 15)

- n/a `auth.prm`, `auth.as_metadata`, `auth.cimd`: no remote uses OAuth
- n/a `auth.secret_in_url`: no templated URL

### tool hygiene: 86 (weight 30)

- pass `tools.descriptions`: every tool has a description
- pass `tools.description_length`: descriptions are concise
- pass `tools.schemas`: every tool has an object input schema
- pass `tools.annotations`: 3 of 3 tools declare readOnlyHint or destructiveHint
- fail `tools.directory_hints`: no tool declares all four of readOnlyHint, destructiveHint, idempotentHint and openWorldHint; missing: get_targets (idempotentHint); search (idempotentHint); get_manual (idempotentHint)
- pass `tools.token_cost`: about 1,054 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump

### stability: 75 (weight 15)

- warn `stability.changes`: 10 tool changes in 30 days
- pass `stability.rug_pull`: no tool changed its meaning under the same name

### dependencies: n/a (weight 15)

- n/a `deps.known_vulns`, `deps.mcp_sdk_version`, `deps.resolvable`: no npm or PyPI package

- tools: 3, about 1,054 tokens to load them all
- tool set hash: 39785d75adb55a5b29e837352737c426
- tools last changed: 2026-10-17T00:15:46.095Z
- badge: [![protogrid quality](https://protogrid.dev/badge/ai.manpage/mcp.svg)](https://protogrid.dev/servers/ai.manpage/mcp)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

- 2026-10-17 `get_manual` changed (annotations)
- 2026-10-17 `search` changed (inputSchema, annotations)
- 2026-10-17 `get_targets` changed (annotations)
- 2026-10-13 `get_man_page` removed
  - Read a manual. Required fields depend on the retrieval mode: 1. Name lookup: name. Example: {"name":"ls"}. Optional product pins a distro. Without OS/version filters, select the newest upstream version across active catalogs. Different packages or sections remain ambiguous; provenance identifies the chosen distro. 2. ID lookup: page_id copied from a previous result; omit name-based filters. 3. Continuation: cursor copied from get_man_page.next_cursor; omit name-based filters. A matching page_id may also be supplied. max_chars is optional in every mode. With product, os_version defaults to latest (null also means latest): the newest numbered release with readable documentation for the requested architecture/locale. Pass an explicit release such as 44 to pin it. Responses identify the actual OS release. A missing manual never falls back to an older OS. page_id and cursor retain their own release. Version accepts exact EVR (2:1.35-9.fc44), version-release (1.35-9.fc44), or upstream version (1.35). No operators or ranges: >=1.35 is invalid. RPM ~ and ^ characters are allowed in exact versions. Omit version for current documentation. An unavailable version never falls back; alternatives list only readable manuals. Ambiguity returns page_id choices. Alternatively pass only page_id from search, or only cursor to continue a long page. max_chars bounds each response; next_cursor=null means finished.
- 2026-10-13 `list_targets` removed
  - List OS releases with readable manuals. Required fields: none; call with {}. Use product and os_version from a result in get_man_page or search_man_pages. An empty list means no current documentation is available.
- 2026-10-13 `search_man_pages` removed
  - Find manuals by topic, command prefix or literal option such as --recursive. Required field: query, including when continuing a search. All other fields are optional. Example: {"query":"compress files"}. Read a result with get_man_page(page_id=...). Returns context-preserving excerpts and page_id values for get_man_page. Aliases of the same document are grouped. Without product, an exact manual-name match selects the newest upstream version per package/name/section across active OS catalogs. Equal versions use deterministic distro ties; unrelated implementations stay separate. Topic/prefix searches use the newest numbered release per product for architecture/locale. Pass os_version=null to search all releases without collapsing distro variants. An explicit release pins OS selection. Current package builds are searched by default. Set historical=true to include readable older package versions within the selected OS releases, without automatic upstream-version selection. Responses name the actual OS targets searched. Repeat the query/filters with next_page to continue; null means finished or the configured page cap was reached.
- 2026-10-13 `give_feedback` removed
  - Report unexpected tool errors, missing capabilities, confusing output, or unclear docs. Only message is required. Describe your goal, what you tried, what you expected, and any workaround. Feedback is saved for the maintainers to review.
- 2026-10-13 `get_manual` added
  - Get full manual text by name, e.g. manual_name="ls"; no package needed. manual_name is the command name (also matches aliases); package is an optional filter. Tries exact casing first, then a case-insensitive name/alias match. Search API selects latest indexed packages per scope, preferring Fedora when distribution is omitted, then newest Fedora RPM version across scopes. Explicit filters always apply; package_version can select historical manuals. Exact command names (sections 1/8) precede other names and aliases within the preferred distro. No locale fallback. Returns manual text with a distro/release and package/version header. Source-only manuals raise an error with extraction status.
- 2026-10-13 `search` added
  - Search manual text/metadata; return ranked hits, snippets and exact identities. Latest indexed package versions are used unless package_version is supplied. Omitted scope filters include all indexed distributions and releases. Supply query for relevance-ranked text search, or manual_name without query for name/alias lookup with Fedora-preferred recommendations and case-insensitive fallback. Pass next_cursor with identical arguments for the next live page; results can shift as indexing progresses. Filters are exact and case-sensitive.
- 2026-10-13 `get_targets` added
  - List indexed distribution/release/repository/architecture scopes and counts. Use the returned values verbatim; targets such as CentOS 8, EPEL 9 or Fedora 43 are available only if they have been indexed.

Full history: https://api.protogrid.dev/v1/servers/ai.manpage%2Fmcp/changes

## Remotes

- https://manpage.ai/mcp (streamable-http, auth none, reachable true, uptime30d 1)

## Packages

_none_

## Tools (3)

- `get_manual`: Get full manual text by name, e.g. manual_name="ls"; no package needed.

manual_name is the command name (also matches aliases); package is an optional filter.
Tries exact casing first, then a case-insensitive name/alias match.
Search API selects latest indexed packages per scope, preferring Fedora
when distribution is omitted, then newest Fedora RPM version across scopes.
Explicit filters always apply; package_version can select historical manuals.
Exact command names (sections 1/8) precede other names and aliases within
the preferred distro. No locale fallback.
Returns manual text with a distro/release and package/version header.
Source-only manuals raise an error with extraction status.
- `get_targets`: List indexed distribution/release/repository/architecture scopes and counts.

Use the returned values verbatim; targets such as CentOS 8, EPEL 9 or
Fedora 43 are available only if they have been indexed.
- `search`: Search manual text/metadata; return ranked hits, snippets and exact identities.

Latest indexed package versions are used unless package_version is supplied.
Omitted scope filters include all indexed distributions and releases.
Supply query for relevance-ranked text search, or manual_name without query
for name/alias lookup with Fedora-preferred recommendations and case-insensitive fallback.
Pass next_cursor with identical arguments for the next live page; results
can shift as indexing progresses. Filters are exact and case-sensitive.
