unix-docs-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_documentsA | List the historical UNIX documents available on this server, with metadata such as title, authors, source URL, page count, and a short description. |
| get_document_infoA | Return metadata for one document plus a page-by-page overview (first line of each page), useful as a table of contents before reading specific pages. |
| search_documentsA | Search the ingested UNIX documentation. Returns ranked page-level matches with a snippet around the first hit. Optionally restrict to a single document by doc_id. |
| read_pagesA | Read raw text of one page or a contiguous range of pages from a document. Use get_document_info first to find the right pages. |
| list_manpagesA | List the 4.2BSD manual pages, optionally restricted to a section (1=commands, 2=syscalls, 3=libc, 4=devices, 5=formats, 6=games, 7=documents, 8=admin, l=local, n=new, o=obsolete). |
| search_manpagesA | Search the 4.2BSD manual pages. Returns ranked matches with a snippet around the first hit. Restrict with section (2=syscalls, 3=libc, 4=devices, 5=formats). |
| read_manpageA | Read the full text of one 4.2BSD manual page by name and optional section (e.g. name="read", section="2"). If the name is ambiguous across sections, give the section. |
| search_sourceA | Search the 4.2BSD kernel and userland C source. Returns matching lines in the style of grep (path:line: code). Optionally filter by a path substring such as "netinet" or "libc/gen". |
| read_source_fileA | Read a source file from the 4.2BSD tree by path (e.g. "sys/sys/sysent.c" or "src/lib/libc/gen/read.c"). Optionally restrict to a line range. At most 1500 lines are returned. |
| find_symbolA | Locate a function, struct, macro, typedef, or variable across the 4.2BSD source. Definitions are listed first, then declarations and references, each as path:line: code. |
| list_syscallsA | List the 4.2BSD system call table (number, name, and any notes). Optionally filter by name substring. |
| get_syscallA | Look up a 4.2BSD system call by number or name (e.g. "2" or "fork"). Returns its number, name, and any notes. |
| search_allA | Search across all corpora at once: prose documentation, manual pages, and source code. Results are grouped by kind and labeled. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 13 tools
Each tool targets a distinct corpus (documents, manpages, source, syscalls) with distinct actions (list, get, search, read, find). The descriptions clearly differentiate between search_documents, search_manpages, and search_source, so there is no real ambiguity.
All tool names follow a consistent verb_noun snake_case pattern (list_, get_, search_, read_, find_). Even search_all fits the verb+noun pattern with 'all' as the object. No mixed naming conventions are present.
13 tools is well-scoped for a multi-corpus documentation server. Each corpus (documents, manpages, source, syscalls) has just the right set of operations, and search_all provides a cross-corpus entry point. No redundant tools exist.
The tool set covers the full read-only lifecycle for documents (list/get/search/read), manpages (list/search/read), source (search/read/find), and syscalls (list/get). A minor gap is the lack of a directory listing for source files, but search_source and find_symbol partially mitigate this.