Alchemy MCP Plugin

# MCP Plugin Development Protocol ⚠️ CRITICAL: DO NOT USE attempt_completion BEFORE TESTING ⚠️ ## Step 1: Planning (PLAN MODE) - What problem does this tool solve? - What API/service will it use? - What are the authentication requirements? □ Standard API key □ OAuth (requires separate setup script) □ Other credentials ## Step 2: Implementation (ACT MODE) 1. Bootstrap - For web services, JavaScript integration, or Node.js environments: ```bash npx @modelcontextprotocol/create-server my-server cd my-server npm install ``` - For data science, ML workflows, or Python environments: ```bash pip install mcp # Or with uv (recommended) uv add "mcp[cli]" ``` 2. Core Implementation - Use MCP SDK - Implement comprehensive logging - TypeScript (for web/JS projects): ```typescript console.error('[Setup] Initializing server...'); console.error('[API] Request to endpoint:', endpoint); console.error('[Error] Failed with:', error); ``` - Python (for data science/ML projects): ```python import logging logging.error('[Setup] Initializing server...') logging.error(f'[API] Request to endpoint: {endpoint}') logging.error(f'[Error] Failed with: {str(error)}') ``` - Add type definitions - Handle errors with context - Implement rate limiting if needed 3. Configuration - Get credentials from user if needed - Add to MCP settings: - For TypeScript projects: ```json { "mcpServers": { "my-server": { "command": "node", "args": ["path/to/build/index.js"], "env": { "API_KEY": "key" }, "disabled": false, "autoApprove": [] } } } ``` - For Python projects: ```bash # Directly with command line mcp install server.py -v API_KEY=key # Or in settings.json { "mcpServers": { "my-server": { "command": "python", "args": ["server.py"], "env": { "API_KEY": "key" }, "disabled": false, "autoApprove": [] } } } ``` ## Step 3: Testing (BLOCKER ⛔️) <thinking> BEFORE using attempt_completion, I MUST verify: □ Have I tested EVERY tool? □ Have I confirmed success from the user for each test? □ Have I documented the test results? If ANY answer is "no", I MUST NOT use attempt_completion. </thinking> 1. Test Each Tool (REQUIRED) □ Test each tool with valid inputs □ Verify output format is correct ⚠️ DO NOT PROCEED UNTIL ALL TOOLS TESTED ## Step 4: Completion ❗ STOP AND VERIFY: □ Every tool has been tested with valid inputs □ Output format is correct for each tool Only after ALL tools have been tested can attempt_completion be used. ## Key Requirements - ✓ Must use MCP SDK - ✓ Must have comprehensive logging - ✓ Must test each tool individually - ✓ Must handle errors gracefully - ⛔️ NEVER skip testing before completion