Skip to main content
Glama
Recon-Fuzz

recon-fuzz-knowledge

by Recon-Fuzz
README.md
# @recon-fuzz-mcp/knowledge

[![npm](https://img.shields.io/npm/v/@recon-fuzz-mcp/knowledge.svg)](https://www.npmjs.com/package/@recon-fuzz-mcp/knowledge)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
[![Node 18+](https://img.shields.io/badge/node-%3E%3D18-brightgreen.svg)](https://nodejs.org/)

MCP server that makes Recon documentation searchable by AI tools. Fetches and parses [getrecon.xyz/llms-full.txt](https://getrecon.xyz/llms-full.txt) into structured, queryable content.

## Tools

### Site tools (getrecon.xyz)

| Tool | Input | Returns |
|------|-------|---------|
| `search_glossary` | `query: string` | Top 5 matching glossary terms with definitions |
| `get_blog_post` | `slug: string` | Full post content + metadata + URL |
| `get_comparison` | `slug: string` | Both entities, strengths, conclusion, FAQs |
| `search_site` | `query: string` | Top 10 matches across site content |
| `list_tools` | _(none)_ | Developer tools with descriptions + URLs |

### Book tools (book.getrecon.xyz)

| Tool | Input | Returns |
|------|-------|---------|
| `get_book_chapter` | `slug: string` | Full chapter content, category, URL |
| `get_book_concept` | `slug: string` | Technical concept explanation |
| `search_book` | `query: string` | Top 10 matches across book content |
| `list_book_chapters` | _(none)_ | All chapters grouped by category |

### Substack tools (getrecon.substack.com)

| Tool | Input | Returns |
|------|-------|---------|
| `get_substack_post` | `slug: string` | Full newsletter post content |
| `search_substack` | `query: string` | Top 10 matches across Substack posts |
| `list_substack_posts` | _(none)_ | All posts sorted by date |

### Cross-source

| Tool | Input | Returns |
|------|-------|---------|
| `search_all` | `query: string` | Top 15 matches across all 3 sources |
| `refresh_cache` | _(none)_ | Re-fetch all sources (rate limited to 1/min) |

## Installation

### Claude Code

```bash
claude mcp add recon-knowledge -- npx @recon-fuzz-mcp/knowledge
```

### Claude Desktop

Add to `~/Library/Application Support/Claude/claude_desktop_config.json`:

```json
{
  "mcpServers": {
    "recon-knowledge": {
      "command": "npx",
      "args": ["@recon-fuzz-mcp/knowledge"]
    }
  }
}
```

### Cursor

Add to `.cursor/mcp.json` in your project:

```json
{
  "mcpServers": {
    "recon-knowledge": {
      "command": "npx",
      "args": ["@recon-fuzz-mcp/knowledge"]
    }
  }
}
```

No API key needed. The server fetches public documentation only.

## Local development

```bash
git clone https://github.com/Recon-Fuzz/recon-mcp-knowledge.git
cd recon-mcp-knowledge
npm install
npm run build
```

### Test it works

```bash
# List tools
echo '{"jsonrpc":"2.0","method":"tools/list","id":1}' | node dist/index.js

# Search for chimera content
echo '{"jsonrpc":"2.0","method":"tools/call","params":{"name":"search_site","arguments":{"query":"chimera"}},"id":2}' | node dist/index.js
```

## Architecture

- Fetches `llms-full.txt` once on startup, caches in memory
- Cache refreshes every 24h automatically or on manual `refresh_cache`
- Parser splits by `---` dividers, extracts blog posts, glossary, comparisons, tools
- Search uses case-insensitive term matching with word-boundary scoring
- No database, no external search library, no filesystem writes

## Privacy

This server is read-only. It fetches from a single hardcoded public URL (`getrecon.xyz/llms-full.txt`). No user queries, tool arguments, or any data is sent to Recon or any third party.

TDQS

A3.7/5.0

Scored across 14 tools

Disambiguation4/5

Most tools have distinct purposes targeting specific content types or actions, but there is some overlap between search_all and the individual search tools (search_book, search_site, search_substack), which could cause confusion about when to use the comprehensive versus specific search. The get_* and list_* tools are clearly differentiated by resource and action.

Naming Consistency5/5

Tool names follow a consistent verb_noun pattern throughout, with clear prefixes like get_, list_, search_, and refresh_. All names use snake_case uniformly, making them predictable and easy to understand for agents.

Tool Count5/5

With 14 tools, the server is well-scoped for its purpose of accessing and searching Recon's documentation and content across multiple sources. Each tool serves a specific function, such as retrieving, listing, or searching different content types, without unnecessary duplication or bloat.

Completeness5/5

The tool surface provides comprehensive coverage for the domain of Recon's knowledge base, including CRUD-like operations (get, list, search) across all documented sources (blog, book, Substack, tools, glossary). There are no obvious gaps; agents can access, list, and search all content types effectively.

Maintenance

ActivityInactive
ResponsivenessNo issues