A lightweight, zero-config MCP server for documentation projects. Give it an llms-full.txt file (local path or URL) and optional OpenAPI/AsyncAPI directories. It also hellps you to build one if you do not have it. It registers only the MCP tools that make sense for what you've provided — no code changes, no hard-coded paths. - Why it's different - When to use this — and when not to - How it works
Add this skill
npx mdskills install derberg/easypeasymcpWell-documented MCP server providing smart, conditional documentation and API spec access
1# EasyPeasyMCP23<table><tr>4<td><img src="assets/logo.png" alt="EasyPeasyMCP logo" /></td>5<td>67A lightweight, zero-config [MCP](https://modelcontextprotocol.io/) server for documentation projects.89Give it an `llms-full.txt` file (local path or URL) and optional OpenAPI/AsyncAPI directories. It also hellps you to build one if you do not have it. It registers only the MCP tools that make sense for what you've provided — no code changes, no hard-coded paths.1011</td>12</tr></table>1314<video src="https://github.com/user-attachments/assets/c4c20cfb-eba9-467f-9cdc-24e78e230b63" controls width="800"></video>1516## Table of Contents1718- [Why it's different](#why-its-different)19- [When to use this — and when not to](#when-to-use-this--and-when-not-to)20- [How it works](#how-it-works)21- [Quick start](#quick-start)22- [Generating llms-full.txt](#generating-llms-fulltxt)23- [Configuration reference](#configuration-reference)24 - [`easy-peasy-mcp` (MCP server)](#easy-peasy-mcp-mcp-server)25 - [`easy-peasy-build` (llms-full.txt generator)](#easy-peasy-build-llms-fulltxt-generator)26- [Local debugging](#local-debugging)2728## Why it's different2930* **No RAG, no vector database, no embedding pipeline.**31Search is a case-insensitive line scan with configurable context — all in-process, in memory. For small projects with well-structured content like `llms-full.txt`, this is all you need to get started — no infrastructure, no ops burden, easy to pitch internally. The entire search capability is ~25 lines of vanilla JS with zero runtime dependencies.32* **Any project with an `llms-full.txt` is MCP-enabled in 30 seconds.**33Point `llmsTxt` at a hosted URL and you're done — no local file sync, no pipeline. Docs update, the AI gets fresh content automatically. It's the adoption curve that matters: the [llms.txt standard](https://llmstxt.org/) is becoming the norm for docs sites, and this tool makes every one of them instantly AI-accessible.3435 Don't have an `llms-full.txt` yet? No problem — as long as you have Markdown files, the bundled `easy-peasy-build` CLI will generate one for you from your docs and specs.36* **Conditional tool registration keeps the AI's context clean.**37No OpenAPI directory? No `list_openapi_specs` tool. Tools only appear when the content exists — the MCP surface matches exactly what you've provided.3839## When to use this — and when not to4041This is a **speed-first tool**. Use it when you need an agent to access new knowledge in minutes, not days — a quick proof of concept, a personal workflow, a demo, or an early internal pilot where getting something working fast matters more than getting it perfect.4243For professional, long-term setups shared across teams, you will eventually want a proper **chunk → embed → RAG** pipeline instead. That gives you semantic search (the agent finds *meaning*, not just matching words), much lower token consumption per query, and the ability to scale across large or frequently updated knowledge bases without loading everything into memory. This tool loads the full content on every startup — that's fine for a few hundred KB, but it's a ceiling, not a foundation.4445No docs at all? Not even Markdown files? If you're in a real hurry, just ask the agent to scrape the developer portal you depend on — it can crawl the relevant pages and pull the content together. It can even check common locations for OpenAPI or AsyncAPI specs and fetch those too. Combine that with `easy-peasy-build` and you have a working MCP server in minutes, with zero local files to maintain.4647The honest summary: use this to validate that AI-assisted documentation is worth investing in. Once it is, graduate to a proper RAG stack.4849## How it works5051| What you provide | Tools registered |52|---|---|53| `llms-full.txt` | `get_full_documentation`, `search_documentation` |54| OpenAPI directory | `list_openapi_specs`, `get_openapi_spec` |55| AsyncAPI directory | `list_asyncapi_specs`, `get_asyncapi_spec` |5657`search_documentation` covers all loaded content (llms-full.txt + all specs).5859## Quick start6061<table>62<tr>63<th>Option A — Config file</th>64<th>Option B — CLI args</th>65</tr>66<tr>67<td>6869Drop an `.easypeasymcp.json` (or `.easypeasymcp.yaml`) in your docs project root:7071**JSON:**72```json73{74 "name": "my-project",75 "llmsTxt": "./llms-full.txt",76 "openapi": "./openapi",77 "asyncapi": "./asyncapi",78 "build": {79 "docs": ["./guides", "./api-reference"]80 }81}82```8384**YAML:**85```yaml86name: my-project87llmsTxt: ./llms-full.txt88openapi: ./openapi89asyncapi: ./asyncapi90build:91 docs:92 - ./guides93 - ./api-reference94```9596Paths are relative to the config file. Omit any key you don't have.97`llmsTxt` can also be a URL. The `build` section is optional — include it if you want the server to regenerate `llms-full.txt` on every startup (add `--rebuild` to the command below).9899**Registration requires absolute path to config file** (paths inside the config are relative to it):100101```bash102# Use absolute path103claude mcp add my-project npx easy-peasy-mcp@0.0.11 \104 -- --rebuild --config /absolute/path/to/.easypeasymcp.json105106# Or convert relative to absolute with shell expansion107claude mcp add my-project npx easy-peasy-mcp@0.0.11 \108 -- --rebuild --config $(pwd)/.easypeasymcp.json109```110111</td>112<td>113114No config file needed — pass everything directly. Works with URLs too:115116```bash117claude mcp add asyncapi npx easy-peasy-mcp@0.0.11 -- \118 --name "asyncapi" \119 --llms https://raw.githubusercontent.com/derberg/EasyPeasyMCP/refs/heads/main/example-llms/asyncapi.txt120```121122</td>123</tr>124</table>125126## Generating llms-full.txt127128<table>129<tr>130<th width="30%">Option A — gitingest.com</th>131<th width="70%">Option B — easy-peasy-build</th>132</tr>133<tr>134<td>135136[gitingest.com](https://gitingest.com/) generates a single combined text file from any public repo or website. Good for a one-off grab when you don't need the file to stay in sync with updates.137138</td>139<td>140141For local Markdown files + OpenAPI/AsyncAPI specs:142143```bash144npx --package=easy-peasy-mcp@0.0.11 easy-peasy-build \145 --docs ./guides \146 --docs ./api-reference \147 --openapi ./openapi \148 --asyncapi ./asyncapi \149 --output ./llms-full.txt150```151152- `--docs` is repeatable for multiple source directories153- Reads `.md` and `.mdx` files recursively, sorted by name154- OpenAPI/AsyncAPI files are included as code-fenced blocks155- Omit `--output` to print to stdout156157To keep `llms-full.txt` fresh automatically, add a `build` section to `.easypeasymcp.json` and pass `--rebuild` when registering the MCP server — it will regenerate on every startup instead of needing a manual run.158159</td>160</tr>161</table>162163## Configuration reference164165### `easy-peasy-mcp` (MCP server)166167| CLI flag | Config key | Description |168|---|---|---|169| `--config <path>` | — | Path to `.easypeasymcp.json`. Config file keys are used as defaults; CLI flags override them. |170| `--name <string>` | `name` | Server name, shown in MCP client and embedded in tool descriptions. Defaults to `"docs"`. |171| `--llms <path\|url>` | `llmsTxt` | Path or URL to `llms-full.txt`. Registers `get_full_documentation` and `search_documentation`. |172| `--openapi <dir>` | `openapi` | Path to a directory of OpenAPI specs (JSON/YAML). Registers `list_openapi_specs` and `get_openapi_spec`. |173| `--asyncapi <dir>` | `asyncapi` | Path to a directory of AsyncAPI specs (JSON/YAML). Registers `list_asyncapi_specs` and `get_asyncapi_spec`. |174| `--rebuild` | `build` | Rebuild `llms-full.txt` from local sources on every startup. Requires a config file with a `build` section (see below). |175| `--debug` | — | Enable debug logging to stderr. Useful for troubleshooting search issues or verifying content is loaded correctly. |176177Config file paths are resolved relative to the config file's location. At least one of `--llms`, `--openapi`, or `--asyncapi` is required.178179#### `build` config section180181Optional. When present, add `--rebuild` to the `claude mcp add` command and the server will regenerate `llms-full.txt` on every startup.182183```json184{185 "name": "my-project",186 "llmsTxt": "./llms-full.txt",187 "openapi": "./openapi",188 "build": {189 "docs": ["./guides", "./api-reference"],190 "title": "My Project"191 }192}193```194195`openapi` and `asyncapi` from the top level are reused automatically. `llmsTxt` is the output path.196197### `easy-peasy-build` (llms-full.txt generator)198199| CLI flag | Description |200|---|---|201| `--docs <dir>` | Markdown source directory. Repeatable for multiple directories. |202| `--openapi <dir>` | OpenAPI spec directory. Files included as code-fenced blocks. |203| `--asyncapi <dir>` | AsyncAPI spec directory. Files included as code-fenced blocks. |204| `--title <string>` | Project title for the generated file header. |205| `--output <path>` | Output file path. Omit to print to stdout. |206207## Local debugging208209Use the [MCP Inspector](https://github.com/modelcontextprotocol/inspector) to interactively test the server:210211<table>212<tr>213<th>With config file</th>214<th>With CLI args</th>215</tr>216<tr>217<td>218219```bash220npx @modelcontextprotocol/inspector@0.21.1 \221 npx easy-peasy-mcp@0.0.11 -- \222 --config /path/to/.easypeasymcp.json223```224225</td>226<td>227228```bash229npx @modelcontextprotocol/inspector@0.21.1 \230 npx easy-peasy-mcp@0.0.11 -- \231 --llms /path/to/llms-full.txt \232 --openapi /path/to/openapi233```234235</td>236</tr>237</table>238239To try it right now without any local files:240241```bash242npx @modelcontextprotocol/inspector@0.21.1 \243 npx easy-peasy-mcp@0.0.11 -- \244 --llms https://raw.githubusercontent.com/derberg/EasyPeasyMCP/refs/heads/main/example-llms/asyncapi.txt245```246247**Tip:** Add `--debug` to see detailed logging about content loading and search operations:248249```bash250npx @modelcontextprotocol/inspector@0.21.1 \251 npx easy-peasy-mcp@0.0.11 -- \252 --config /path/to/.easypeasymcp.json \253 --debug254```255256Debug logs appear in the **Server Notifications** view in the MCP Inspector UI.257258
Full transparency — inspect the skill content before installing.