{"_id":"@action8/mcp","_rev":"5-a3d8c465ead8de91020d7a8d31f9f375","name":"@action8/mcp","dist-tags":{"latest":"0.0.3"},"versions":{"0.0.2":{"name":"@action8/mcp","version":"0.0.2","_id":"@action8/mcp@0.0.2","maintainers":[{"name":"junliangfeng","email":"junliang.feng@getgrasp.ai"}],"bin":{"action8-mcp":"dist/cli.js"},"dist":{"shasum":"6ec5c29cf5e4ddd34fd1b0a28a58495a30906fbf","tarball":"https://registry.npmjs.org/@action8/mcp/-/mcp-0.0.2.tgz","fileCount":50,"integrity":"sha512-y/eAyYIERcbGK2XtU3jeJvSdm4N1QiDQI4MKmyjBuVOZgThgDUqlLIBuWP2yjsrDBi3nagJjdilIKw34ihFz8g==","signatures":[{"sig":"MEQCIGVvS5Y0m69awYckfbGFdSykq1IHbXJH6m0QGY5yolC9AiBfbamybCaqqGPr8Y6+Ei9zUPg+3r8Q8K8OYB3NvCFORQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":83608},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"9a58f618d7a12ed46443c1947f61104c1394c4fc","private":false,"scripts":{"lint":"eslint . --ext .ts","test":"vitest run","build":"tsc -p tsconfig.build.json","clean":"rimraf dist","prepublishOnly":"npm run build"},"_npmUser":{"name":"junliangfeng","email":"junliang.feng@getgrasp.ai"},"_npmVersion":"11.6.0","description":"MCP server for Claude / Cursor and other AI Agents, providing two-step query capabilities: - `search_actions`: Search for site / page / element / scenario metadata - `get_action_by_id`: Get complete content by ID (Markdown, optional JSON)","directories":{},"_nodeVersion":"24.10.0","dependencies":{"zod":"^3.25.6","undici":"^6.21.0","zod-to-json-schema":"^3.22.5","@modelcontextprotocol/sdk":"^1.23.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^5.0.5","vitest":"^1.6.0","typescript":"^5.6.3","@types/node":"^20.14.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp_0.0.2_1764774211787_0.8212205879520633","host":"s3://npm-registry-packages-npm-production"}},"0.0.3":{"name":"@action8/mcp","version":"0.0.3","private":false,"type":"module","main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"import":"./dist/index.js","types":"./dist/index.d.ts"}},"bin":{"action8-mcp":"dist/cli.js"},"publishConfig":{"access":"public"},"scripts":{"prebuild":"pnpm --filter @action8/sdk build","build":"tsc -p tsconfig.build.json","test":"vitest run","lint":"eslint . --ext .ts","clean":"rimraf dist","prepublishOnly":"npm run build"},"dependencies":{"@action8/sdk":"workspace:*","@modelcontextprotocol/sdk":"^1.23.0","undici":"^6.21.0","zod":"^3.25.6","zod-to-json-schema":"^3.22.5"},"devDependencies":{"@types/node":"^20.14.0","typescript":"^5.6.3","vitest":"^1.6.0","rimraf":"^5.0.5"},"engines":{"node":">=18"},"_id":"@action8/mcp@0.0.3","gitHead":"3efa17cb69fcd749f9aafd3b728fd33e06b6b86d","description":"MCP server for Claude / Cursor and other AI Agents, providing two-step query capabilities: - `search_actions`: Search for site / page / element / scenario metadata - `get_action_by_id`: Get complete content by ID (Markdown, optional JSON)","_nodeVersion":"24.10.0","_npmVersion":"11.6.0","dist":{"integrity":"sha512-LaquUspmEAGoVPTAxqO48XdqrHC6oYCINWq00BTL3koAMNk0mS0D4n2GILAvomaFTbJSrDo8gt88ElZ7YC8l1g==","shasum":"822c1f9fb219f86db6a4310fbdadbfc003db7428","tarball":"https://registry.npmjs.org/@action8/mcp/-/mcp-0.0.3.tgz","fileCount":89,"unpackedSize":105310,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIEC2kBhcVkUbz5lHxqcmx4Lvho1oTKruHe8mm/7rncumAiEAgKwQN9OfCI4SA+p9pYlLxXvam/XRO/kgn+jZUAg8KSs="}]},"_npmUser":{"name":"junliangfeng","email":"junliang.feng@getgrasp.ai"},"directories":{},"maintainers":[{"name":"junliangfeng","email":"junliang.feng@getgrasp.ai"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/mcp_0.0.3_1765987206657_0.25192179392000047"},"_hasShrinkwrap":false}},"time":{"created":"2025-12-03T15:03:31.543Z","modified":"2025-12-17T16:00:07.017Z","0.0.1":"2025-12-03T14:52:23.718Z","0.0.2":"2025-12-03T15:03:31.956Z","0.0.3":"2025-12-17T16:00:06.791Z"},"description":"MCP server for Claude / Cursor and other AI Agents, providing two-step query capabilities: - `search_actions`: Search for site / page / element / scenario metadata - `get_action_by_id`: Get complete content by ID (Markdown, optional JSON)","maintainers":[{"name":"junliangfeng","email":"junliang.feng@getgrasp.ai"}],"readme":"# Action8 MCP Server\n\nMCP server for Claude / Cursor and other AI Agents, providing two-step query capabilities:\n- `search_actions`: Search for site / page / element / scenario metadata\n- `get_action_by_id`: Get complete content by ID (Markdown, optional JSON)\n\n## Installation & Running\n\n### Using Published Package\n```bash\nnpx @action8/mcp --api-url http://localhost:3100\n```\n\n### Using Local Source (Monorepo)\n```bash\n# Build\npnpm -C packages/mcp build\n\n# Run\nnode packages/mcp/dist/cli.js --api-url http://localhost:3100\n```\n\n## Configuration\n\nEnvironment variables and CLI arguments (CLI arguments take precedence over environment variables):\n\n| Env Variable | CLI Argument | Description | Default |\n|---|---|---|---|\n| `ACTION8_API_URL` | `--api-url <url>` | API service URL | `https://api.action8.io` |\n| `ACTION8_API_KEY` | `--api-key <key>` | API Key | - |\n| `ACTION8_LOG_LEVEL` | `--log-level <level>` | Log level (debug/info/warn/error) | `info` |\n| `ACTION8_TIMEOUT` | `--timeout <ms>` | Request timeout (ms) | `30000` |\n| `ACTION8_RETRY_MAX` | `--retry-max <n>` | Max retry attempts | `3` |\n| `ACTION8_RETRY_DELAY` | `--retry-delay <ms>` | Retry delay (ms) | `1000` |\n| `ACTION8_TRANSPORT` | `--transport <type>` | Transport mode (stdio/http) | `stdio` |\n| `ACTION8_HTTP_PORT` | `--http-port <port>` | HTTP server port (http mode only) | `3001` |\n| `ACTION8_HTTP_HOST` | `--http-host <host>` | HTTP server host (http mode only) | `0.0.0.0` |\n| `ACTION8_HTTP_CORS` | `--http-cors <origins>` | CORS origins (comma-separated, http mode only) | `*` |\n\n### Example Usage\n\n**Using environment variables:**\n```bash\nexport ACTION8_API_URL=http://localhost:3100\nexport ACTION8_API_KEY=your-key\nexport ACTION8_LOG_LEVEL=debug\nnpx @action8/mcp\n```\n\n**Using CLI arguments:**\n```bash\nnpx @action8/mcp --api-url http://localhost:3100 --api-key your-key --log-level debug\n```\n\n**Using HTTP transport:**\n```bash\n# Environment variables\nexport ACTION8_TRANSPORT=http\nexport ACTION8_HTTP_PORT=3001\nnpx @action8/mcp\n\n# CLI arguments (overrides environment)\nnpx @action8/mcp --transport http --http-port 3001 --http-host localhost\n```\n\n## Development & Publishing\n\n### 1. Local Development & Debugging\n**Claude Desktop Configuration (Recommended)**\nUse absolute path to reference local build artifacts for stability:\n```json\n{\n  \"mcpServers\": {\n    \"action8-local\": {\n      \"command\": \"node\",\n      \"args\": [\n        \"/absolute/path/to/action8/packages/mcp/dist/cli.js\",\n        \"--api-url\", \"http://localhost:3000\"\n      ]\n    }\n  }\n}\n```\n*Tip: Use `pnpm -C packages/mcp build --watch` to enable watch mode. Changes will auto-compile (Claude restart required).*\n\n**Using npm link**\n```bash\ncd packages/mcp\nnpm link\n\n# Test command\naction8-mcp --help\n```\n\n### 2. Publish to NPM\n```bash\ncd packages/mcp\n\n# 1. Login\nnpm login\n\n# 2. Update version\nnpm version patch   # 0.1.0 → 0.1.1 (bug fix)\nnpm version minor   # 0.1.0 → 0.2.0 (new feature)\nnpm version major   # 0.1.0 → 1.0.0 (breaking change)\n\n# 3. Build and publish (prepublishOnly auto-runs build)\nnpm publish\n```\n\n### 3. Install Published Version\n```bash\n# Global install (for CLI)\nnpm install -g @action8/mcp\n\n# Or as project dependency\nnpm install @action8/mcp\n\n# Or run directly with npx (no install needed)\nnpx @action8/mcp --api-url http://localhost:3100\n```\n\nIf previously used `npm link`, clean up before installing:\n```bash\nnpm rm -g @action8/mcp\nnpm cache clean --force\nnpm install -g @action8/mcp\n```\n\n### 4. Monorepo Internal Integration Testing\nNo publishing needed. Reference directly in other workspaces (e.g., `services/action-builder`):\n1. Add dependency to `package.json`: `\"@action8/mcp\": \"workspace:*\"`\n2. Write test scripts:\n```typescript\nimport { Action8McpServer } from '@action8/mcp';\n// ...use class for integration testing\n```\n\n## MCP Client Configuration\n\n### Claude Desktop\n```json\n{\n  \"mcpServers\": {\n    \"action8\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@action8/mcp\", \"--api-url\", \"http://localhost:3100\"],\n      \"env\": {\n        \"ACTION8_API_KEY\": \"your-key\"\n      }\n    }\n  }\n}\n```\n\n### Cursor\n```json\n{\n  \"mcpServers\": {\n    \"action8\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@action8/mcp\", \"--api-url\", \"http://localhost:3100\"]\n    }\n  }\n}\n```\n\n## Test Coverage\n- Core libs: config/protocol/errors/logger/formatter/schema/types/api-client\n- Tools: search_actions / get_action_by_id\n- Server: tool registration and invocation\n- Integration: local HTTP stub to verify tool calls with actual API client\n","readmeFilename":"README.md"}