{"id":50827326,"url":"https://github.com/easyzoom/aix-mcp-server","last_synced_at":"2026-06-13T20:07:00.402Z","repository":{"id":354556893,"uuid":"1224126759","full_name":"easyzoom/aix-mcp-server","owner":"easyzoom","description":"AIX MCP Server is an extensible Model Context Protocol server with plugin management, MCP service registry, sandbox-based security levels, LLM recommendations, and a Web Dashboard. (AIX MCP Server 是一个可扩展的 MCP 服务平台，支持插件管理、MCP 服务注册中心、沙箱安全等级认证、LLM 智能推荐和 Web Dashboard。)","archived":false,"fork":false,"pushed_at":"2026-04-29T03:56:34.000Z","size":86,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-29T04:34:36.743Z","etag":null,"topics":["ai-agents","dashboard","mcp","mcp-server","model-context-protocol-servers","plugin-system","sandbox"],"latest_commit_sha":null,"homepage":"https://github.com/easyzoom/aix-mcp-server","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/easyzoom.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":"docs/roadmap.md","authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-04-29T01:40:30.000Z","updated_at":"2026-04-29T03:56:38.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/easyzoom/aix-mcp-server","commit_stats":null,"previous_names":["easyzoom/aix-mcp-server"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/easyzoom/aix-mcp-server","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/easyzoom%2Faix-mcp-server","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/easyzoom%2Faix-mcp-server/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/easyzoom%2Faix-mcp-server/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/easyzoom%2Faix-mcp-server/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/easyzoom","download_url":"https://codeload.github.com/easyzoom/aix-mcp-server/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/easyzoom%2Faix-mcp-server/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34298269,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-13T02:00:06.617Z","response_time":62,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai-agents","dashboard","mcp","mcp-server","model-context-protocol-servers","plugin-system","sandbox"],"created_at":"2026-06-13T20:06:59.730Z","updated_at":"2026-06-13T20:07:00.390Z","avatar_url":"https://github.com/easyzoom.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"# AIX MCP Server\n\n[中文文档](./README.zh-CN.md)\n\nAn extensible Model Context Protocol (MCP) server with a plugin system, proxy forwarding, Web Dashboard, and a built-in service registry.\n\n![AIX MCP Server banner](./docs/assets/banner.svg)\n\n## Features\n\n- **Dual Transport** — stdio (for Cursor / Claude Desktop) and Streamable HTTP\n- **Plugin System** — 7 built-in utility plugins; extend via npm packages, local paths, or JSON files\n- **Proxy Forwarding** — Aggregate multiple remote MCP servers into a single endpoint\n- **Web Dashboard** — Manage plugins, proxies, and logs through a visual interface\n- **Service Registry** — Pre-loaded catalog of popular MCP services with one-click install and config copy\n- **LLM-Powered Search** — AI-driven discovery and recommendations for MCP services\n- **Docker Ready** — Multi-stage build, works out of the box\n\n## Preview\n\n![Dashboard preview](./docs/assets/dashboard-preview.svg)\n\n## Quick Start\n\n### Local\n\n```bash\nnpm install\nnpm run build\n\n# stdio mode (for MCP clients)\nnpm start\n\n# HTTP mode (starts web server + dashboard)\nnode dist/index.js http\n```\n\n### Docker\n\n```bash\n# Build and start (detached)\ndocker compose up --build -d\n\n# View logs\ndocker compose logs -f\n\n# Stop\ndocker compose down\n```\n\nThe service listens on `http://localhost:3080` by default.\n\n## Built-in Plugins\n\n| Plugin | Tools | Description |\n| -------- | ------- | ------------- |\n| **calculator** | `calculator` | Math expression evaluation |\n| **crypto** | `hash-text`, `random-uuid`, `random-string` | Hashing, UUID, random strings |\n| **datetime** | `current-time`, `format-time` | Current time, time formatting |\n| **filesystem** | `list-files`, `read-file` + Resource | File listing, reading, file resource |\n| **hello-json** | `hello-json` + Resource | Declarative JSON-authored plugin example |\n| **system** | `run-command` + Resource | Shell command execution, system info resource |\n| **text-utils** | `json-format`, `base64`, `text-stats` | JSON formatting, Base64 encode/decode, text stats |\n\n## MCP Client Configuration\n\n### Cursor\n\nAdd to your Cursor MCP settings:\n\n```json\n{\n  \"mcpServers\": {\n    \"aix-mcp-server\": {\n      \"command\": \"node\",\n      \"args\": [\"/path/to/aix-mcp-server/dist/index.js\"]\n    }\n  }\n}\n```\n\nOr use HTTP mode (start the server first):\n\n```json\n{\n  \"mcpServers\": {\n    \"aix-mcp-server\": {\n      \"url\": \"http://localhost:3080/mcp\"\n    }\n  }\n}\n```\n\n### Claude Desktop\n\nAdd to `claude_desktop_config.json`:\n\n```json\n{\n  \"mcpServers\": {\n    \"aix-mcp-server\": {\n      \"command\": \"node\",\n      \"args\": [\"/path/to/aix-mcp-server/dist/index.js\"]\n    }\n  }\n}\n```\n\n## Plugin Development\n\nCreate a TypeScript file that default-exports an object conforming to the `McpPlugin` interface:\n\n```typescript\nimport { z } from \"zod\";\nimport type { McpPlugin } from \"aix-mcp-server/plugin\";\n\nconst plugin: McpPlugin = {\n  name: \"my-plugin\",\n  description: \"My custom plugin\",\n  register(server) {\n    server.registerTool(\"my-tool\", {\n      title: \"My Tool\",\n      description: \"Does something useful\",\n      inputSchema: z.object({\n        input: z.string().describe(\"Input value\"),\n      }),\n    }, async ({ input }) =\u003e {\n      return { content: [{ type: \"text\", text: `Result: ${input}` }] };\n    });\n  },\n};\n\nexport default plugin;\n```\n\nSee `examples/mcp-plugin-example/` for a complete example.\n\n### JSON Plugins\n\nYou can also create lightweight local MCP plugins using only JSON, similar to sharing a userscript. JSON plugins are declarative and do not execute arbitrary JavaScript. They currently support template/json tool responses and static resources.\n\nCreate `plugins/my-json-plugin.json`:\n\n```json\n{\n  \"schemaVersion\": 1,\n  \"name\": \"my-json-plugin\",\n  \"description\": \"A declarative JSON MCP plugin\",\n  \"tools\": [\n    {\n      \"name\": \"hello\",\n      \"title\": \"Hello\",\n      \"description\": \"Return a greeting\",\n      \"inputSchema\": {\n        \"type\": \"object\",\n        \"required\": [\"name\"],\n        \"properties\": {\n          \"name\": { \"type\": \"string\", \"description\": \"Name to greet\" }\n        }\n      },\n      \"response\": {\n        \"type\": \"template\",\n        \"text\": \"Hello {{name}}!\"\n      }\n    }\n  ]\n}\n```\n\nThen add it to `mcp-plugins.json`:\n\n```json\n{\n  \"source\": \"./plugins/my-json-plugin.json\",\n  \"enabled\": true\n}\n```\n\n### Installing Plugins\n\n```bash\n# Via CLI\nnode dist/cli.js add ./path/to/plugin\nnode dist/cli.js add some-npm-package\n\n# Or edit mcp-plugins.json directly\n```\n\n## Proxy Configuration\n\nEdit `mcp-proxy.json` to add remote MCP servers:\n\n```json\n{\n  \"targets\": [\n    {\n      \"name\": \"remote-server\",\n      \"url\": \"http://other-mcp:3000/mcp\",\n      \"enabled\": true,\n      \"description\": \"Remote MCP server\"\n    }\n  ]\n}\n```\n\n## Quality Checks\n\n```bash\nnpm test\nnpm run registry:validate\n```\n\n`registry:validate` checks `mcp-registry.json` and configured JSON plugins before you open a pull request.\n\n## Architecture\n\n![AIX MCP Server architecture](./docs/assets/architecture.svg)\n\nSee [Architecture Notes](./docs/architecture.md) and [Registry Schema](./docs/registry-schema.md) for contributor-facing design details.\n\nSee [Cursor Integration Guide](./docs/cursor-integration.md) to configure this server for one project or all Cursor workspaces.\n\nSee [Technical Roadmap](./docs/roadmap.md) for the planned v1.1, v1.2, and v2.0 evolution.\n\n## Troubleshooting\n\n- `http://localhost:3080/mcp` returns `Missing or invalid session ID`: this is expected when opening the MCP endpoint directly in a browser. Use the Dashboard at `http://localhost:3080`, or connect through an MCP client.\n- Dashboard changes do not appear: rebuild and restart the server or container after changing TypeScript, plugins, or config files.\n- JSON plugin fails to load: run `npm run registry:validate` to get an exact field path for the invalid JSON.\n- Sandbox upgrade fails: inspect the failed check and its `Fix` message in the Dashboard, then rerun sandbox validation.\n\n## Project Structure\n\n```text\naix-mcp-server/\n├── src/\n│   ├── index.ts          # Entry (stdio / HTTP transport)\n│   ├── cli.ts            # Plugin management CLI\n│   ├── loader.ts         # Plugin loader\n│   ├── plugin.ts         # Plugin interface\n│   ├── proxy.ts          # Proxy forwarding\n│   ├── registry.ts       # Service registry\n│   ├── llm.ts            # LLM provider integration\n│   ├── plugins/          # Built-in plugins\n│   │   ├── calculator.ts\n│   │   ├── crypto.ts\n│   │   ├── datetime.ts\n│   │   ├── filesystem.ts\n│   │   ├── system.ts\n│   │   └── text-utils.ts\n│   └── web/\n│       ├── api.ts        # Dashboard API routes\n│       └── dashboard.html\n├── mcp-plugins.json      # Plugin configuration\n├── mcp-proxy.json        # Proxy configuration\n├── mcp-registry.json     # Service registry data\n├── llm-config.json       # LLM provider configuration\n├── docker-compose.yml\n├── Dockerfile\n└── package.json\n```\n\n## License\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feasyzoom%2Faix-mcp-server","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Feasyzoom%2Faix-mcp-server","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feasyzoom%2Faix-mcp-server/lists"}