{
  "markdown": "# MCP Pickaxe Server\n\n![Architecture](docs/images/architecture-diagram.png)\n\n<!-- <p align=\"center\">\n  <img src=\"docs/mcp-pickaxe-logo.png\" alt=\"MCP Pickaxe Server\" width=\"400\">\n</p> -->\n\n[![npm version](https://img.shields.io/npm/v/mcp-pickaxe.svg)](https://www.npmjs.com/package/mcp-pickaxe)\n[![CI](https://github.com/aplaceforallmystuff/mcp-pickaxe/actions/workflows/ci.yml/badge.svg)](https://github.com/aplaceforallmystuff/mcp-pickaxe/actions/workflows/ci.yml)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n[![MCP](https://img.shields.io/badge/MCP-Compatible-blue)](https://modelcontextprotocol.io)\n\nAn MCP (Model Context Protocol) server that connects AI assistants like Claude to the [Pickaxe](https://pickaxe.co) platform. Manage your AI agents, knowledge bases, users, and analytics directly through natural language.\n\n## Why Use This?\n\nIf you're building AI agents on Pickaxe, this MCP server lets you:\n\n- **Analyze agent conversations** - Review chat history to identify knowledge gaps and improve agent performance\n- **Manage knowledge bases** - Create, update, and connect documents to your agents without leaving your AI workflow\n- **Handle user management** - Create users, manage access, send invitations, and track usage\n- **Work across multiple studios** - Seamlessly switch between different Pickaxe studios in a single session\n- **Automate workflows** - Let Claude handle repetitive Pickaxe admin tasks\n\n## Features\n\n| Category | Tools |\n|----------|-------|\n| **Studios** | List configured studios, switch between them |\n| **Chat History** | Fetch and analyze agent conversation logs |\n| **Documents** | Create, list, get, delete, connect/disconnect to agents |\n| **Users** | Create, list, get, update, delete, invite |\n| **Products** | List available products and bundles |\n| **Memory** | List memory schemas, retrieve user memories |\n\n## Prerequisites\n\n- Node.js 18+\n- A [Pickaxe](https://pickaxe.co) account with API access\n- Your Pickaxe Studio API key(s)\n\n## Installation\n\n### Option 1: Install from npm (recommended)\n\n```bash\nnpx mcp-pickaxe\n```\n\nOr install globally:\n\n```bash\nnpm install -g mcp-pickaxe\n```\n\n### Option 2: Clone and Build\n\n```bash\ngit clone https://github.com/aplaceforallmystuff/mcp-pickaxe.git\ncd mcp-pickaxe\nnpm install\nnpm run build\n```\n\n## Configuration\n\n### 1. Get Your Pickaxe API Key\n\n1. Log in to [Pickaxe Studio](https://studio.pickaxe.co)\n2. Navigate to Settings > API\n3. Copy your Studio API key (starts with `studio-`)\n\n### 2. Configure Your MCP Client\n\n#### For Claude Desktop\n\nAdd to your Claude Desktop config file:\n\n**macOS**: `~/Library/Application Support/Claude/claude_desktop_config.json`\n\n**Windows**: `%APPDATA%\\Claude\\claude_desktop_config.json`\n\n```json\n{\n  \"mcpServers\": {\n    \"pickaxe\": {\n      \"command\": \"node\",\n      \"args\": [\"/path/to/mcp-pickaxe/dist/index.js\"],\n      \"env\": {\n        \"PICKAXE_STUDIO_MAIN\": \"studio-your-api-key-here\"\n      }\n    }\n  }\n}\n```\n\n#### For Claude Code\n\nAdd to `~/.claude.json`:\n\n```json\n{\n  \"mcpServers\": {\n    \"pickaxe\": {\n      \"command\": \"node\",\n      \"args\": [\"/path/to/mcp-pickaxe/dist/index.js\"],\n      \"env\": {\n        \"PICKAXE_STUDIO_MAIN\": \"studio-your-api-key-here\"\n      }\n    }\n  }\n}\n```\n\n### Multi-Studio Configuration\n\nTo work with multiple Pickaxe studios, add multiple environment variables:\n\n```json\n{\n  \"env\": {\n    \"PICKAXE_STUDIO_PRODUCTION\": \"studio-xxx-xxx-xxx\",\n    \"PICKAXE_STUDIO_STAGING\": \"studio-yyy-yyy-yyy\",\n    \"PICKAXE_STUDIO_DEV\": \"studio-zzz-zzz-zzz\",\n    \"PICKAXE_DEFAULT_STUDIO\": \"PRODUCTION\"\n  }\n}\n```\n\nThen specify which studio to use in your requests:\n- If you set `PICKAXE_DEFAULT_STUDIO`, that studio is used when none is specified\n- If only one studio is configured, it's used automatically\n- Otherwise, pass `studio=\"STAGING\"` (or similar) to any tool\n\n## Use Cases\n\nThese are real workflows built with mcp-pickaxe in production environments.\n\n### 1. Security Monitoring with n8n\n\n**Scenario:** Detect prompt injection attempts across 29+ AI agents in real-time.\n\n**Implementation:**\nAn n8n workflow polls `chat_history` hourly for all agents, runs messages against injection detection patterns (stored in Notion), and routes alerts by severity:\n- HIGH/CRITICAL → Telegram alert + Notion log\n- LOW/MEDIUM → Notion log only\n\n```\nn8n Schedule (hourly)\n    → Fetch patterns from Notion\n    → Loop through 29 pickaxe IDs\n    → Fetch chat_history for each\n    → Detect injections (regex patterns)\n    → Route by severity → Alert/Log\n```\n\n**Tools used:** `chat_history`, `studios_list`\n\n**Result:** Real-time security monitoring across an entire studio with dynamic pattern management and severity-based alerting.\n\n### 2. Knowledge Base Auto-Research Pipeline\n\n**Scenario:** Automatically fact-check and maintain 31+ knowledge base articles.\n\n**Implementation:**\nAn n8n workflow queries KB articles from Notion, extracts key claims, fact-checks via Perplexity API, classifies changes by risk level, and routes to auto-update or human review.\n\n```\nDaily Schedule (2am)\n    → Query KB articles from Notion\n    → Filter by day (hash-based, ~1/7th daily)\n    → Extract key claims\n    → Perplexity fact-check\n    → Classify: none/low/major risk\n    → Route: auto-update or create review task\n```\n\n**Tools used:** `doc_list`, `doc_get`, `doc_create`, `doc_connect`\n\n**Result:** KB content stays current with automated fact-checking and human-in-the-loop for major changes.\n\n### 3. Agent Performance Review\n\n**Scenario:** Quarterly review of a training studio to identify KB gaps and user pain points.\n\n**Workflow:**\n```\n1. \"Fetch chat history from my training agents\"\n2. \"Analyze: which questions got unclear or uncertain responses?\"\n3. \"List all KB documents - which topics are missing?\"\n4. \"Check user stats - who's most active, who's churning?\"\n5. \"Create KB documents addressing the top 3 gaps\"\n6. \"Connect new documents to the relevant agents\"\n```\n\n**Tools used:** `chat_history`, `doc_list`, `doc_create`, `doc_connect`, `user_list`\n\n**Result:** Data-driven KB improvements based on actual user conversations rather than guesswork.\n\n### 4. Multi-Studio Operations\n\n**Scenario:** Managing multiple Pickaxe studios from a single Claude session.\n\n**Configuration:**\n```json\n{\n  \"env\": {\n    \"PICKAXE_STUDIO_PRODUCTION\": \"studio-xxx\",\n    \"PICKAXE_STUDIO_STAGING\": \"studio-yyy\",\n    \"PICKAXE_STUDIO_DEV\": \"studio-zzz\",\n    \"PICKAXE_DEFAULT_STUDIO\": \"PRODUCTION\"\n  }\n}\n```\n\n**Workflow:**\n```\n1. \"List users in PRODUCTION - how many signups this month?\"\n2. \"Switch to STAGING - list products\"\n3. \"Compare KB document counts across all studios\"\n4. \"Find which studio has the most chat activity\"\n```\n\n**Tools used:** `studios_list`, `user_list`, `doc_list`, `products_list`\n\n**Result:** Cross-studio visibility without switching contexts or API keys manually.\n\n### 5. User Memory Auditing\n\n**Scenario:** Review what your agents remember about users for personalization and privacy compliance.\n\n**Workflow:**\n```\n1. \"List all memory schemas defined in the studio\"\n2. \"Get memories for user@example.com\"\n3. \"What does the system know about this user's situation?\"\n4. \"Which memory fields are most populated across users?\"\n```\n\n**Example output:**\n```\nUser: maria.example@email.com\nNickname: \"Cautious Educator from Madrid\"\nSummary: \"Teaching [language] for [platform] at low hourly rate,\n         considering self-employment status due to\n         uncertain income\"\nMemories: 1 stored\n```\n\n**Tools used:** `memory_list`, `memory_get_user`, `user_list`\n\n**Result:** Visibility into personalization data for both product improvement and GDPR compliance.\n\n---\n\n## Quick Start Examples\n\nOnce configured, you can interact with Pickaxe through natural language:\n\n### Analyze Agent Performance\n> \"Show me the last 20 conversations from my support agent\"\n\n> \"What questions are users asking that my agent can't answer?\"\n\n### Manage Knowledge Base\n> \"Create a new document called 'FAQ' with this content: [your content]\"\n\n> \"Connect the FAQ document to my customer support agent\"\n\n> \"List all documents in my knowledge base\"\n\n### User Management\n> \"Show me all users and their usage stats\"\n\n> \"Create a new user with email user@example.com and give them access to the Pro product\"\n\n> \"Send invitations to these emails: [list of emails]\"\n\n### Multi-Studio Operations\n> \"List all users in my staging studio\"\n\n> \"Compare the documents between production and staging\"\n\n## Available Tools\n\n### Studio Management\n- `studios_list` - List all configured studios and the current default\n\n### Chat History\n- `chat_history` - Fetch conversation history for an agent\n  - Parameters: `pickaxeId`, `skip`, `limit`, `format` (\"messages\" or \"raw\"), `studio`\n\n### Document Management\n- `doc_create` - Create document from content or URL\n- `doc_list` - List all documents (with pagination)\n- `doc_get` - Get a specific document\n- `doc_delete` - Delete a document\n- `doc_connect` - Link document to an agent\n- `doc_disconnect` - Unlink document from an agent\n\n### User Management\n- `user_list` - List all users with access and usage info\n- `user_get` - Get a specific user by email\n- `user_create` - Create a new user\n- `user_update` - Update user details, products, or usage\n- `user_delete` - Delete a user\n- `user_invite` - Send email invitations\n\n### Products\n- `products_list` - List available products/bundles\n\n### Memory\n- `memory_list` - List memory schemas\n- `memory_get_user` - Get collected memories for a user\n\n## Development\n\n```bash\n# Run in development mode (auto-reloads)\nnpm run dev\n\n# Build for production\nnpm run build\n\n# Run the built version\nnpm start\n```\n\n## Troubleshooting\n\n### \"No Pickaxe studios configured\"\nEnsure you have at least one `PICKAXE_STUDIO_*` environment variable set in your MCP config.\n\n### \"Studio not found\"\nCheck that the studio name matches exactly (case-insensitive). Run `studios_list` to see available options.\n\n### \"Pickaxe API error (401)\"\nYour API key is invalid or expired. Get a new one from Pickaxe Studio settings.\n\n### \"Pickaxe API error (403)\"\nYour API key doesn't have permission for this operation. Check your Pickaxe account permissions.\n\n## Contributing\n\nContributions are welcome! Please see [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.\n\n## License\n\nMIT License - see [LICENSE](LICENSE) for details.\n\n## Links\n\n- [Pickaxe Platform](https://pickaxe.co)\n- [Pickaxe Studio](https://studio.pickaxe.co)\n- [Model Context Protocol](https://modelcontextprotocol.io)\n- [MCP Specification](https://spec.modelcontextprotocol.io)\n",
  "bytes": 10551,
  "sha": "fc0168ad63b2cdc032dfef781258fc580f605d60bd2b589a77c08aa527f3127c",
  "repo_slug": "aplaceforallmystuff/mcp-pickaxe",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_aplaceforallmystuff_mcp_pickax_ca83e3bf/readme"
}