dfns-mcp
by jhubbardsf
README.md
# DFNS MCP Server
A Model Context Protocol (MCP) server that provides AI agents with access to the [DFNS](https://dfns.co) documentation, API reference, and SDK code.
## Features
- **Full-Text Search**: Instantly search across all DFNS guides, API docs, and SDK source code
- **TypeScript Type Intelligence**: Search and retrieve SDK type definitions with import paths
- **Auto-Updating Docs**: Documentation is fetched from docs.dfns.co on first run and cached locally
- **Context Initialization**: Dedicated `init` tool to enforce documentation-first behavior
- **Smart Context**: Retrieve specific documents, code examples, and API endpoint definitions
- **SDK Intelligence**: Mapped knowledge of supported blockchains and their SDK packages
## Requirements
This MCP server requires [Bun](https://bun.sh) - a fast JavaScript runtime.
**Linux/macOS:**
```bash
curl -fsSL https://bun.sh/install | bash
```
**Windows (PowerShell):**
```powershell
powershell -c "irm bun.sh/install.ps1 | iex"
```
## Quick Start
### Claude Code (Recommended)
```bash
claude mcp add -s user dfns-mcp -- bunx dfns-mcp@latest
```
The `-s user` flag installs to the user so it's available in all your projects.
### Cursor
Add to your Cursor MCP settings (`.cursor/mcp.json`):
```json
{
"mcpServers": {
"dfns-mcp": {
"command": "bunx",
"args": ["dfns-mcp@latest"]
}
}
}
```
### Codex
```bash
codex mcp add dfns-mcp -- bunx dfns-mcp@latest
```
### Gemini CLI
Add to your Gemini CLI config (`~/.gemini/settings.json`):
```json
{
"mcpServers": {
"dfns-mcp": {
"command": "bunx",
"args": ["dfns-mcp@latest"]
}
}
}
```
### Global Installation
If you prefer to install globally instead of using `bunx`:
```bash
bun install -g dfns-mcp
# Then reference as just "dfns-mcp" in your MCP config
```
## Agent Instructions (Recommended)
Add this to your global `~/.claude/CLAUDE.md` (or `~/AGENTS.md` for other agents) to ensure your AI always uses up-to-date DFNS documentation:
```markdown
## DFNS Development
When working with DFNS (wallet infrastructure, key management, blockchain integrations):
1. **Always** call `mcp__dfns-mcp__init` at the start of any DFNS-related task
2. **Never** rely on training data for DFNS APIs - always use `search_docs` and `get_doc` to verify
3. Use `search_types` and `get_type` to get accurate TypeScript type definitions
4. DFNS APIs and SDKs change frequently - the MCP server has the latest documentation
```
This prevents agents from hallucinating outdated API signatures or SDK patterns.
## How It Works
On first run, the server automatically downloads the latest DFNS documentation from [docs.dfns.co](https://docs.dfns.co) and SDK types from GitHub, caching them locally in `~/.cache/dfns-mcp/`. The cache is refreshed every 24 hours automatically, or you can force an update using the `update_docs` tool.
## Available Tools
### Documentation Tools
| Tool | Description |
|------|-------------|
| **`init`** | **CALL THIS FIRST.** Initializes the session and mandates strict documentation adherence |
| `search_docs` | Search all documentation and SDK files |
| `get_doc` | Retrieve the full content of a specific document |
| `list_docs` | List available documents by category |
| `get_code_examples` | Extract code snippets for a specific topic |
| `browse_api_structure` | View hierarchical API endpoint structure |
| `get_api_endpoint` | Get details for a specific API endpoint (e.g., `POST /wallets`) |
| `get_blockchain_info` | Get SDK package info for a specific chain (e.g., `Solana`) |
| `list_blockchains` | List all supported blockchains with their SDK packages |
### TypeScript Type Tools
| Tool | Description |
|------|-------------|
| `search_types` | Search SDK types by name (e.g., "Wallet", "Signer", "Transaction") |
| `get_type` | Get full type definition, import path, and usage |
| `list_types` | List all types by category |
### Cache Management
| Tool | Description |
|------|-------------|
| `update_docs` | Force update the documentation cache from docs.dfns.co and GitHub |
| `cache_info` | Get information about the cache (location, last update, etc.) |
## Resources
The server also exposes these quick-reference resources:
| Resource URI | Description |
|--------------|-------------|
| `dfns://quickref/authentication` | Authentication patterns and code samples |
| `dfns://quickref/sdk-setup` | Package installation and setup guide |
| `dfns://quickref/networks` | All supported blockchain networks |
## Best Practices for Agents
When using this server, agents should follow this workflow:
1. **Initialize**: Call `init` immediately to establish the "Documentation First" protocol
2. **Search**: Use `search_docs` to find relevant information before answering ANY question
3. **Read**: Use `get_doc` to read the actual source material
4. **Answer**: Formulate responses based *only* on the retrieved context
## Development
```bash
# Clone the repo
git clone https://github.com/jmaddington/dfns-mcp.git
cd dfns-mcp
# Install dependencies
bun install
# Run in development mode with auto-reload
bun run dev
# Test with MCP Inspector
bun run inspect
```
## License
MIT
This server cannot be deployed
Maintenance
ActivityInactive
ResponsivenessNo issues