{"_id":"@unctad-ai/eregulations-mcp-server","_rev":"35-9034c6b11e0dfa0f8e1f8bd6bc29b581","name":"@unctad-ai/eregulations-mcp-server","dist-tags":{"latest":"1.0.1"},"versions":{"1.0.0":{"name":"@unctad-ai/eregulations-mcp-server","version":"1.0.0","keywords":["eregulations","mcp","model-context-protocol","llm","api"],"author":{"name":"benmoumen@gmail.com"},"license":"MIT","_id":"@unctad-ai/eregulations-mcp-server@1.0.0","maintainers":[{"name":"benmoumen","email":"benmoumen@gmail.com"}],"homepage":"https://github.com/unctad-ai/eregulations-mcp-server#readme","bugs":{"url":"https://github.com/unctad-ai/eregulations-mcp-server/issues"},"bin":{"eregulations-mcp-server":"dist/index.js"},"npm":"https://www.npmjs.com/package/@unctad-ai/eregulations-mcp-server","dist":{"shasum":"23479477d7c959a2c735639da6788c572c9de16b","tarball":"https://registry.npmjs.org/@unctad-ai/eregulations-mcp-server/-/eregulations-mcp-server-1.0.0.tgz","fileCount":68,"integrity":"sha512-Ywek2Vnby+FqHDNEZRW8f5jKScle6RURV0QNA0ZvHSTcYkN4JHfxh0QBj1ArKeTmigviyI1cYCy43JOHy6kF1A==","signatures":[{"sig":"MEUCIQDpPZl0+WXe0rLPr/GQcaXNLKBISiwsvWgcHYvMdqQ3xAIgHsmUl4CzE/BWKiRYJWOj/b9X+LHA/2G3LDUYC1WkLlI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":213956},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.19.0"},"gitHead":"85ddcc57433a2c3fdaf496478a26b0350255f8b5","scripts":{"dev":"tsx watch src/index.ts","logs":"echo \"Starting TCP log server on port 8099...\"; nc -kl 8099","test":"vitest run","build":"tsc && chmod +x dist/index.js","clean":"rm -rf dist","start":"tsc && node dist/index.js","watch":"tsc --watch","prepare":"npm run build","release":"standard-version","postbump":"git push && git push --tags","prerelease":"npm run test && npm run docker:build","test:watch":"vitest","test-client":"node dist/test-client.js --api-url https://api-tanzania.eregulations.org","docker:build":"docker build -t eregulations-mcp-server:latest .","mcp-inspector":"npx @modelcontextprotocol/inspector npx -y @unctad-ai/eregulations-mcp-server@latest --api-url https://api-tanzania.eregulations.org","release:major":"npm run prerelease && standard-version --release-as major","release:minor":"npm run prerelease && standard-version --release-as minor","release:patch":"npm run prerelease && standard-version --release-as patch","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build && npm run test","mcp-inspector-local":"npx @modelcontextprotocol/inspector node dist/index.js --api-url https://api-tanzania.tradeportal.org"},"_npmUser":{"name":"benmoumen","email":"benmoumen@gmail.com"},"repository":{"url":"git+https://github.com/unctad-ai/eregulations-mcp-server.git","type":"git"},"_npmVersion":"10.8.2","description":"Model Context Protocol (MCP) server for eRegulations API","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^3.25.76","axios":"^1.17.0","yargs":"^18.0.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.4","vitest":"^4.1.8","typescript":"^5.9.3","@types/node":"^22.15.0","@types/yargs":"^17.0.33","standard-version":"^9.5.0","@vitest/coverage-v8":"^4.1.8"},"_npmOperationalInternal":{"tmp":"tmp/eregulations-mcp-server_1.0.0_1780493846148_0.7360478955381844","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@unctad-ai/eregulations-mcp-server","version":"1.0.1","description":"Model Context Protocol (MCP) server for eRegulations API","main":"dist/index.js","type":"module","bin":{"eregulations-mcp-server":"dist/index.js"},"scripts":{"build":"npm run clean && tsc -p tsconfig.build.json && chmod +x dist/index.js","clean":"rm -rf dist","prepare":"npm run build","watch":"tsc --watch","dev":"tsx watch src/index.ts","start":"tsc && node dist/index.js","logs":"echo \"Starting TCP log server on port 8099...\"; nc -kl 8099","test":"vitest run","test:watch":"vitest","test:coverage":"vitest run --coverage","mcp-inspector":"npx @modelcontextprotocol/inspector npx -y @unctad-ai/eregulations-mcp-server@latest --api-url https://api-tanzania.eregulations.org","mcp-inspector-local":"npx @modelcontextprotocol/inspector node dist/index.js --api-url https://api-tanzania.tradeportal.org","test-client":"tsx src/test-client.ts --api-url https://api-tanzania.eregulations.org","prepublishOnly":"npm run build && npm run test","docker:build":"docker build -t eregulations-mcp-server:latest .","prerelease":"npm run test && npm run docker:build","postbump":"git push && git push --tags","release:patch":"npm run prerelease && standard-version --release-as patch","release:minor":"npm run prerelease && standard-version --release-as minor","release:major":"npm run prerelease && standard-version --release-as major","release":"standard-version"},"repository":{"type":"git","url":"git+https://github.com/unctad-ai/eregulations-mcp-server.git"},"bugs":{"url":"https://github.com/unctad-ai/eregulations-mcp-server/issues"},"homepage":"https://github.com/unctad-ai/eregulations-mcp-server#readme","npm":"https://www.npmjs.com/package/@unctad-ai/eregulations-mcp-server","keywords":["eregulations","mcp","model-context-protocol","llm","api"],"author":{"name":"benmoumen@gmail.com"},"license":"MIT","publishConfig":{"access":"public"},"engines":{"node":">=20.19.0"},"dependencies":{"@modelcontextprotocol/sdk":"^1.29.0","axios":"^1.17.0","yargs":"^18.0.0","zod":"^3.25.76"},"devDependencies":{"@types/node":"^22.15.0","@types/yargs":"^17.0.33","@vitest/coverage-v8":"^4.1.8","standard-version":"^9.5.0","tsx":"^4.22.4","typescript":"^5.9.3","vitest":"^4.1.8"},"_id":"@unctad-ai/eregulations-mcp-server@1.0.1","gitHead":"938aa52c8a7d926f634a99f35288fe45c2986f7a","types":"./dist/index.d.ts","_nodeVersion":"20.20.2","_npmVersion":"10.8.2","dist":{"integrity":"sha512-1OknhNBbh8S6TXMYSdps2QW8chqnwX0fQUFId36cZIw7xyFeMhvMDk/efS2w9iWz4u72hCw/xMK751NDD106Kg==","shasum":"b068e671113145fd7babf0f2a011beb602761264","tarball":"https://registry.npmjs.org/@unctad-ai/eregulations-mcp-server/-/eregulations-mcp-server-1.0.1.tgz","fileCount":42,"unpackedSize":115895,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIA+bUAvjGJRjbuKVtJrK6duMq/UIB8zA9K2M/NfYYjH9AiAZlLFd5siwZtTjyP0vQE5D/5d0MxbHJopfk53skkkauA=="}]},"_npmUser":{"name":"benmoumen","email":"benmoumen@gmail.com"},"directories":{},"maintainers":[{"name":"benmoumen","email":"benmoumen@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/eregulations-mcp-server_1.0.1_1782917845801_0.6171627306984278"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-03T13:37:25.965Z","modified":"2026-07-01T14:57:26.109Z","0.1.0":"2025-03-18T11:39:33.410Z","0.1.2":"2025-03-18T11:50:30.819Z","0.1.3":"2025-03-18T11:57:11.919Z","0.1.4":"2025-03-18T12:34:05.460Z","0.1.5":"2025-03-18T13:02:05.115Z","0.1.6":"2025-03-18T13:15:17.180Z","0.1.7":"2025-03-18T14:01:33.446Z","0.1.8":"2025-03-18T15:08:40.690Z","0.1.9":"2025-03-18T15:35:15.455Z","0.1.10":"2025-03-20T14:13:07.041Z","0.1.11":"2025-03-28T19:20:37.576Z","0.1.12":"2025-03-28T19:46:12.693Z","0.2.0":"2025-03-28T22:32:02.307Z","0.2.1":"2025-03-28T22:32:12.457Z","0.2.2":"2025-03-29T00:12:58.862Z","0.2.4":"2025-03-29T00:41:11.560Z","0.2.6":"2025-03-29T02:15:21.420Z","0.2.7":"2025-03-30T09:22:08.932Z","0.2.8":"2025-03-30T09:30:27.330Z","0.2.9":"2025-03-30T09:44:32.673Z","0.2.10":"2025-03-30T10:11:50.933Z","0.2.11":"2025-03-30T13:32:17.163Z","0.2.12":"2025-03-30T13:58:30.399Z","0.3.1":"2025-04-10T07:06:36.716Z","0.3.2":"2025-04-10T13:48:47.090Z","0.3.4":"2025-04-10T14:16:30.519Z","0.3.5":"2025-04-10T16:29:34.698Z","0.4.5":"2025-04-10T21:12:18.742Z","0.4.6":"2025-04-10T21:26:20.944Z","0.4.7":"2025-04-10T22:04:11.638Z","0.4.8":"2025-04-10T23:15:01.005Z","0.4.9":"2025-04-10T23:50:18.396Z","1.0.0":"2026-06-03T13:37:26.297Z","1.0.1":"2026-07-01T14:57:25.967Z"},"bugs":{"url":"https://github.com/unctad-ai/eregulations-mcp-server/issues"},"author":{"name":"benmoumen@gmail.com"},"license":"MIT","homepage":"https://github.com/unctad-ai/eregulations-mcp-server#readme","keywords":["eregulations","mcp","model-context-protocol","llm","api"],"repository":{"type":"git","url":"git+https://github.com/unctad-ai/eregulations-mcp-server.git"},"description":"Model Context Protocol (MCP) server for eRegulations API","maintainers":[{"name":"benmoumen","email":"benmoumen@gmail.com"}],"readme":"# eRegulations MCP Server\n\n[![Verified on MseeP](https://mseep.ai/badge.svg)](https://mseep.ai/app/f22ecac1-122a-47ee-8605-f0952b1964fd)\n\nA Model Context Protocol (MCP) server implementation for accessing eRegulations API data. This server provides structured, AI-friendly access to eRegulations instances, making it easier for AI models to answer user questions about administrative procedures.\n\n[![MseeP.ai Security Assessment Badge](https://mseep.net/pr/unctad-ai-eregulations-mcp-server-badge.png)](https://mseep.ai/app/unctad-ai-eregulations-mcp-server)\n\n<a href=\"https://glama.ai/mcp/servers/@unctad-ai/eregulations-mcp-server\">\n  <img width=\"380\" height=\"200\" src=\"https://glama.ai/mcp/servers/@unctad-ai/eregulations-mcp-server/badge\" alt=\"eRegulations Server MCP server\" />\n</a>\n\n## Features\n\n- Access eRegulations data through a standardized protocol\n- Query procedures, steps, requirements, and costs\n- MCP prompt templates to guide LLM tool usage\n- Streamlined implementation using standard I/O connections\n\n## Usage\n\nThe server speaks MCP over **stdio**, which is what **Claude Desktop** and **Claude Code** use. It needs a single setting — `EREGULATIONS_API_URL` — the base URL of the eRegulations instance to connect to (for example `https://api-egypt.tradeportal.org`).\n\n### Claude Desktop\n\n**Option A — One-click bundle (MCPB), recommended**\n\nBuild a self-contained `.mcpb` bundle and install it from the Claude Desktop UI:\n\n```bash\nnpm install && npm run build\nnpx @anthropic-ai/mcpb pack\n```\n\nThis produces `eregulations-mcp-server.mcpb`. In Claude Desktop go to **Settings → Extensions** and drag the file in (or double-click it). Claude Desktop will prompt for the eRegulations API URL defined in [`manifest.json`](./manifest.json) — no manual JSON editing required.\n\n**Option B — Manual configuration**\n\nEdit `claude_desktop_config.json` (**Settings → Developer → Edit Config**) and add an entry. Using `npx`:\n\n```json\n{\n  \"mcpServers\": {\n    \"eregulations\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@unctad-ai/eregulations-mcp-server@latest\"],\n      \"env\": {\n        \"EREGULATIONS_API_URL\": \"https://api-egypt.tradeportal.org\"\n      }\n    }\n  }\n}\n```\n\nOr using the published Docker image:\n\n```json\n{\n  \"mcpServers\": {\n    \"eregulations\": {\n      \"command\": \"docker\",\n      \"args\": [\n        \"run\", \"-i\", \"--rm\",\n        \"-e\", \"EREGULATIONS_API_URL\",\n        \"ghcr.io/unctad-ai/eregulations-mcp-server:latest\"\n      ],\n      \"env\": {\n        \"EREGULATIONS_API_URL\": \"https://api-egypt.tradeportal.org\"\n      }\n    }\n  }\n}\n```\n\nRestart Claude Desktop after editing the config.\n\n### Claude Code\n\nRegister the server with the `claude mcp add` command. Using `npx`:\n\n```bash\nclaude mcp add eregulations \\\n  --env EREGULATIONS_API_URL=https://api-egypt.tradeportal.org \\\n  -- npx -y @unctad-ai/eregulations-mcp-server@latest\n```\n\nOr using the Docker image:\n\n```bash\nclaude mcp add eregulations \\\n  -- docker run -i --rm \\\n     -e EREGULATIONS_API_URL=https://api-egypt.tradeportal.org \\\n     ghcr.io/unctad-ai/eregulations-mcp-server:latest\n```\n\nThen check it is connected with `claude mcp list`, and use `/mcp` inside a Claude Code session to inspect the available tools.\n\n### Running with Docker (Recommended)\n\nThe recommended way to run the server is using the published Docker image from the GitHub Container Registry (GHCR). This ensures a consistent and isolated environment.\n\n```bash\n# Pull the latest image (optional)\ndocker pull ghcr.io/unctad-ai/eregulations-mcp-server:latest\n\n# Run the server, providing the target eRegulations API URL\nexport EREGULATIONS_API_URL=\"https://your-eregulations-api.com\"\ndocker run -i --rm -e EREGULATIONS_API_URL ghcr.io/unctad-ai/eregulations-mcp-server\n```\n\nReplace `https://your-eregulations-api.com` with the actual base URL of the eRegulations instance you want to connect to (e.g., `https://api-tanzania.tradeportal.org`).\n\nThe server listens for MCP JSON requests on standard input and sends responses to standard output.\n\n### Example Client Configuration\n\nHere's an example of how a client (like Claude) might be configured to use this server via Docker:\n\n```json\n{\n  \"mcpServers\": {\n    \"eregulations\": {\n      \"command\": \"docker\",\n      \"args\": [\n        \"run\",\n        \"-i\",\n        \"--rm\",\n        \"-e\",\n        \"EREGULATIONS_API_URL\",\n        \"ghcr.io/unctad-ai/eregulations-mcp-server:latest\"\n      ],\n      \"env\": {\n        \"EREGULATIONS_API_URL\": \"https://your-eregulations-api.com\"\n      }\n    }\n  }\n}\n```\n\n(Remember to replace the `EREGULATIONS_API_URL` value in the `env` section as well.)\n\n### Installation via npm Registry (Deprecated)\n\n~~Running the server directly using `npx` is deprecated due to potential environment inconsistencies.~~\n\n~~```bash\n\n# Deprecated: Set environment variables and run with npx\n\nexport EREGULATIONS_API_URL=https://example.com/api && export NODE_ENV=production && npx -y @unctad-ai/eregulations-mcp-server@latest\n\n````~~\n\n## Configuration\n\nThe server requires the URL of the target eRegulations API.\n\n### Environment Variables\n\n- `EREGULATIONS_API_URL`: **(Required)** URL of the eRegulations API to connect to (e.g., `https://api-tanzania.tradeportal.org`). Passed to the Docker container using the `-e` flag.\n\n## Available Tools\n\nThe MCP server provides the following tools:\n\n### `listProcedures`\n\nLists all available procedures in the eRegulations system.\n\n### `getProcedureDetails`\n\nGets detailed information about a specific procedure by its ID.\n\nParameters:\n\n- `procedureId`: ID of the procedure to retrieve\n\n### `getProcedureStep`\n\nGets information about a specific step within a procedure.\n\nParameters:\n\n- `procedureId`: ID of the procedure\n- `stepId`: ID of the step within the procedure\n\n### `searchProcedures`\n\nSearches for procedures by keyword or phrase. Note: This currently searches related objectives based on the underlying API and may include results beyond direct procedure names.\n\nParameters:\n\n- `keyword`: The keyword or phrase to search for\n\n## Prompt Templates\n\nThe server provides prompt templates to guide LLMs in using the available tools correctly. These templates explain the proper format and parameters for each tool. LLM clients that support the MCP prompt templates capability will automatically receive these templates to improve their ability to work with the API.\n\n## Development\n\n```bash\n# Run in development mode\nnpm run start\n\n# Run tests\nnpm test\n\n# Run tests with watch mode\nnpm run test:watch\n\n# Run test client\nnpm run test-client\n```\n","readmeFilename":"README.md"}