griptape-mcp
Stop letting your AI guess at Griptape APIs.
Give it the actual docs.
Your AI keeps hallucinating Griptape method names. You ask it to build an Agent, it writes confident code that doesn't exist. You paste the error. It apologizes and writes different wrong code.
griptape-mcp fixes this. It ships the entire Griptape documentation — 84 framework pages, 125 nodes, 714 real code examples — as a pre-built SQLite database your AI can actually search. No hallucinations. No outdated training data. No API keys.
Install it once. Your AI figures out the rest.
What's inside the box
| 📚 84 framework pages | Agents, Pipelines, Workflows, Tools, Drivers, Engines, RAG, and more |
| 🧩 125 visual nodes | Every node in Griptape Nodes across 17 categories |
| 🔍 Full-text search | SQLite FTS5 — fast, typo-tolerant, ranked by relevance |
| 💻 714 code examples | Real, working snippets pulled straight from the official docs |
| 📦 Ships ready to go | Pre-built database included. No network calls, no API keys, no scraping at query time. |
What it looks like
Once connected, your AI uses the tools automatically. No prompting required.
You: How do I add conversation memory to an Agent?
Claude: (calls search_docs("conversation memory")) Found it. Here's the pattern:
from griptape.structures import Agent
from griptape.memory.structure import ConversationMemory
agent = Agent(conversation_memory=ConversationMemory())
No guessing. No hallucinated imports. Just the actual docs.
Get running in 60 seconds
Step 1 — Install
pip install griptape-mcp
Step 2 — Connect your client
Claude Desktop
Add to your config file:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json - Linux:
~/.config/Claude/claude_desktop_config.json
{
"mcpServers": {
"griptape-docs": {
"command": "griptape-mcp"
}
}
}
Restart Claude Desktop. Look for the 🔨 icon — that means tools are loaded.
Claude Code (one command)
claude mcp add griptape-docs griptape-mcp
Done. That's genuinely it.
Or add manually to your MCP settings:
{
"mcpServers": {
"griptape-docs": {
"command": "griptape-mcp"
}
}
}
Docker
docker build -t griptape-mcp .
{
"mcpServers": {
"griptape-docs": {
"command": "docker",
"args": ["run", "-i", "--rm", "griptape-mcp"]
}
}
}
Step 3 — Ask anything
"How do I create a Griptape Agent with custom tools?"
"What's the difference between a Pipeline and a Workflow?"
"Show me a RAG pipeline example in Griptape"
"What image processing nodes does Griptape Nodes have?"
"Find me code examples for conversation memory"
What your AI can look up
Six tools your AI assistant can call, all read-only and fast:
| Tool | What it does |
|---|---|
search_docs | Full-text search across all Griptape documentation. Filter by "framework", "nodes", or "all". |
get_page | Pull the complete content of any doc page by URL or title. Includes sections and code blocks. |
search_griptape_nodes | Find nodes by name, description, or category. Returns descriptions and doc links. |
get_node_details | Deep dive on a single node — full description, config, and code examples. |
list_categories | Browse what's available: 8 framework sections + 17 node categories with counts. |
get_code_examples | Search for working code snippets by topic. Great for "show me how to..." questions. |
How it works
The architecture is intentionally boring — a SQLite file shipped inside the pip package, opened read-only at query time. No network calls happen during conversations.
┌──────────────────────────────────────────────────────────┐
│ At build time │
│ │
│ docs.griptape.ai ──┐ │
│ ├──▶ scraper ──▶ SQLite + FTS5 │
│ GitHub markdown ────┘ (shipped in package) │
└──────────────────────────────────────────────────────────┘
┌──────────────────────────────────────────────────────────┐
│ At query time │
│ │
│ Claude / AI ◀──stdio──▶ griptape-mcp ◀──▶ SQLite (ro) │
│ │
│ No network calls. No API keys. Just a local subprocess. │
└──────────────────────────────────────────────────────────┘
- Scrapers crawl
docs.griptape.ai(via sitemap) and Griptape Nodes (via GitHub markdown) - Content gets parsed into structured pieces: titles, headings, code blocks, node metadata
- Everything lands in a SQLite database with FTS5 full-text search indexes
- That database ships inside the pip package — nothing to fetch at runtime
- The MCP server opens it read-only and exposes 6 search/lookup tools over stdio
- A nightly GitHub Actions job re-scrapes and rebuilds to stay current
Node coverage
125 nodes across 17 categories:
| Category | Count | Category | Count | |
|---|---|---|---|---|
| Image | 32 | Lists | 17 | |
| Video | 18 | Text | 12 | |
| Config | 9 | Number | 7 | |
| Tools | 7 | JSON | 5 | |
| Dict | 4 | Audio | 3 | |
| Execution | 3 | Rules | 2 | |
| Adv. Media Library | 2 | Agents | 1 | |
| Convert | 1 | Utils | 1 | |
| 3D | 1 |
Development
Setup
git clone https://github.com/KianSalem/griptape-mcp.git
cd griptape-mcp
pip install -e ".[dev]"
Rebuild the docs database
cd scripts
python build_db.py
This scrapes both documentation sources and writes to src/griptape_mcp/data/griptape.db. If the website rate-limits you, the build script automatically falls back to scraping GitHub markdown.
Run against a local database
GRIPTAPE_MCP_DB_PATH=./griptape.db griptape-mcp
Validate
python scripts/validate_db.py src/griptape_mcp/data/griptape.db
[PASS] Framework pages > 10 - got 84
[PASS] Nodes pages > 10 - got 164
[PASS] Nodes extracted > 20 - got 125
[PASS] Sections > 50 - got 2263
[PASS] Code examples > 10 - got 714
[PASS] FTS search works - 'agent' matched 79 pages
[PASS] Multiple node categories - got 17
ALL CHECKS PASSED
Project structure
griptape-mcp/
├── src/griptape_mcp/
│ ├── server.py ← MCP tools (FastMCP)
│ ├── db.py ← Schema, queries, FTS
│ ├── __main__.py ← Entry point
│ └── data/griptape.db ← Pre-built database (14 MB)
├── scripts/
│ ├── build_db.py ← Orchestrates full rebuild
│ ├── scrape_framework.py ← Crawls docs.griptape.ai
│ ├── scrape_nodes.py ← Crawls docs.griptapenodes.com
│ ├── scrape_nodes_github.py ← GitHub fallback scraper
│ └── validate_db.py ← Post-build validation
├── .github/workflows/
│ ├── rebuild-db.yml ← Nightly CI rebuild
│ └── publish.yml ← PyPI publish on release
├── Dockerfile
└── pyproject.toml
Contributing
See CONTRIBUTING.md.
License
MIT — do whatever you want with it.
Built because reading docs is great, but having your AI read them for you is better.