ibmi-docs-mcp
This server lets agents search and fetch IBM i documentation as plain text via MCP.
Search IBM i docs:
search_ibm_docs(query, version?, limit?)returns ranked candidates with title, snippet, href, and URL.Fetch a doc topic:
fetch_ibm_doc(url_or_href, version?)returns the topic’s title, URL, plain-text body, and truncation/staleness flags.Version selection: supports IBM i 7.4, 7.5, and 7.6 via semantic, short, or product-key forms; configurable per call or by default environment variable.
Caching and resilience: uses a local SQLite cache with TTL, stale-on-outage fallback, retries, timeouts, and bounded concurrency.
Configuration via env vars: adjust version, cache path, max characters returned, HTTP timeout, retries, concurrency, user agent, base URL, and logging.
Agent-friendly workflow: search first, verify titles/snippets, then fetch the chosen href for detailed content.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@ibmi-docs-mcpHow can I retrieve a system value using the QWCRSVAL API in IBM i?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
ibmi-docs-mcp
FastMCP server that lets agents search and fetch IBM i documentation via IBM Documentation’s public APIs.
Typical flow: search → pick the best hit’s href → fetch that topic as plain text.
Full tool contracts (parameters, response JSON, errors): docs/TOOLS.md.
Requirements
Python 3.13+
Related MCP server: ghl-api-mcp
Setup
uv sync --extra devRun (stdio MCP)
uv run python server.pyOr: uv run python -m ibmi_docs_mcp
Cursor / Bob mcp.json
{
"mcpServers": {
"ibmi-docs": {
"command": "uv",
"args": [
"run",
"--directory",
"/absolute/path/to/ibmi-docs-mcp",
"python",
"server.py"
],
"env": {
"IBMI_DOCS_VERSION": "7.5.0"
}
}
}
}Tools
search_ibm_docs(query, version?, limit?)— ranked candidates (title,snippet,href,url)fetch_ibm_doc(url_or_href, version?)— plain-text topic body for a chosenhref
Prefer short object/command names (e.g. HTTP_GET, WRKACTJOB). Results are IBM-ranked; do not assume hit #1 is always correct.
See docs/TOOLS.md for response shapes and error codes.
Supported versions
IBM i 7.4, 7.5, and 7.6. Accepted forms include:
Form | Example |
Semantic |
|
Short |
|
Product key |
|
Default is IBMI_DOCS_VERSION=7.5.0 (or pass version per tool call).
Env vars
Set via .env or the MCP host env block. Defaults match .env.example.
Variable | Default | Purpose |
|
| Default IBM i version for search |
|
| SQLite cache file ( |
|
| Soft TTL; stale rows may still be served on outage |
|
| Max plain-text chars returned by fetch |
|
| HTTP timeout (seconds) |
|
| Retries for transient upstream failures |
|
| Max concurrent IBM HTTP requests |
|
| User-Agent sent to IBM |
|
| IBM docs API base |
|
| Log level (stderr only) |
Logging
Logs go to stderr only (stdout is the MCP channel). In Cursor, open the MCP server output / logs panel for lines like search cache hit or fetch miss → IBM.
Troubleshooting
Symptom | What to try |
| Pass a non-blank |
| Use an |
| Use 7.4 / 7.5 / 7.6 (or |
| Raise |
| Check network; warm cache may still return with |
Cache location | Default |
Tests
uv run pytestLicense
MIT — see LICENSE.
Available Tools
2 toolsfetch_ibm_docA
Fetch one IBM i documentation topic as plain text.
Pass the href (or content API URL) from search_ibm_docs. Returns title, url, text, and truncated/stale flags. Prefer search first so you pick the right page.
| Name | Required | Description | Default |
|---|---|---|---|
| version | No | ||
| url_or_href | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses the return payload ('title, url, text, and truncated/stale flags') and implies a read-only operation via 'Fetch.' It also mentions 'truncated/stale flags' which is a useful behavioral nuance. However, it lacks explicit statements about side effects (or lack thereof), error handling, or prerequisites beyond the search step.
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 two sentences, front-loaded with the core purpose, and includes only essential information. Every sentence adds value—first the action, then the usage pattern, then the return summary. No wasted words.
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?
The tool is simple, has an output schema (though not shown in the prompt), and the description covers the return structure. The navigation hint from search is a useful context. The only gap is the undocumented 'version' parameter and lack of explicit error or timeout behavior, but these are not critical for a simple fetch tool.
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?
The schema has no parameter descriptions (0% coverage), so the description must clarify. It clarifies 'url_or_href' by tying it to the search output, but it doesn't explain 'version' at all, leaving that parameter ambiguous. The parameter names themselves are somewhat self-explanatory, but the description only partially compensates for the gap.
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 begins with 'Fetch one IBM i documentation topic as plain text,' which clearly identifies the action (fetch), the resource (IBM i documentation topic), and the output format (plain text). This distinguishes it from the sibling tool 'search_ibm_docs' by focusing on retrieval of a specific topic rather than searching.
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 explicitly instructs to 'Pass the href (or content API URL) from search_ibm_docs' and advises to 'Prefer search first so you pick the right page.' This provides clear when-to-use guidance and names the alternative workflow, leaving no ambiguity about ordering.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_ibm_docsA
Search IBM i documentation (IBM's own docs search index).
Prefer short object/command names (e.g. HTTP_GET, WRKACTJOB, CHGJRN) over long prose. Results are ranked by IBM relevance — read titles/snippets and pick the best match; do not assume hit #1 is always right. Next step: call fetch_ibm_doc with the chosen result's href.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | Yes | ||
| version | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the transparency burden. It discloses two key behaviors: results are ranked by IBM relevance, and the top hit may not be correct, advising to 'read titles/snippets.' It also reveals the output includes hrefs for the next step. This is significant added context 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 two concise sentences, front-loaded with the core purpose, followed by actionable usage tips. Every sentence adds value: the first states what it does, the second covers query style, ranking behavior, and the next step. No fluff or redundancy.
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?
The description covers the essential search workflow, including result ranking caveat and the follow-up fetch step. With an output schema present, the description doesn't need to detail return structure. However, the lack of parameter definitions for limit/version slightly reduces completeness for a tool with three parameters.
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 0%, so the description must compensate. It only addresses the query parameter by recommending short names, but offers no explanation for 'limit' or 'version'. Although their defaults are in the schema, their meaning and usage are not clarified, leaving a clear gap.
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 'Search IBM i documentation (IBM's own docs search index)', specifying the exact verb and resource. It also distinguishes the tool from its sibling by stating the next step to call fetch_ibm_doc, making the search vs. fetch difference explicit.
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 clear guidance on how to use the tool: 'Prefer short object/command names' and 'call fetch_ibm_doc with the chosen result's href.' This establishes the workflow and query strategy, though it doesn't explicitly state when not to use it or enumerate exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
The two tools have clearly distinct roles: one searches the documentation index, the other fetches a specific page. There is no overlap or ambiguity in their purposes.
Both tools use a consistent verb_object pattern: 'search_ibm_docs' and 'fetch_ibm_doc'. The slight singular/plural difference is minor and does not affect consistency.
Two tools is exactly right for a documentation search and retrieval server. Each tool is essential and there is no redundant functionality.
The workflow of search-then-fetch is fully covered. A user can find a relevant topic and retrieve its content without dead ends.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
MCP server for querying Forkast documentation
Remote MCP server for Tandem docs, install guides, SDKs, workflows, and agent setup help.
MCP server for innovationlab documentation, generated by doc2mcp.
MCP server for agentverse documentation, generated by doc2mcp.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceA local-first MCP server that provides fast access to OpenEMR wiki pages, users guide, and selected API documentation through tools like search, page retrieval, and category listing.MIT
- FlicenseAqualityDmaintenanceMCP server for GoHighLevel documentation, enabling agents to search docs, list endpoints, and fetch focused API details without loading large files.71
- AlicenseNot gradedqualityDmaintenanceMCP server for documentation search that automatically indexes web documentation sites and provides semantic, full-text, or hybrid search capabilities.11MIT
- FlicenseNot gradedqualityBmaintenanceMCP server that exposes one or more documentation folders (Markdown, MDX, TXT) to AI agents, enabling listing, reading, and searching of documentation files.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/wyattmog/ibmi-docs-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server