{"id":26746644,"url":"https://github.com/jmanhype/MCPhoenix","last_synced_at":"2025-03-28T09:01:51.671Z","repository":{"id":281477419,"uuid":"945399185","full_name":"jmanhype/MCPhoenix","owner":"jmanhype","description":"A simplified implementation of the Model Context Protocol (MCP) server using Elixir's Phoenix Framework.","archived":false,"fork":false,"pushed_at":"2025-03-11T19:21:49.000Z","size":134,"stargazers_count":47,"open_issues_count":0,"forks_count":3,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-27T09:09:48.606Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Elixir","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/jmanhype.png","metadata":{"files":{"readme":"README.head.tmp","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":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-03-09T10:30:11.000Z","updated_at":"2025-03-23T17:12:47.000Z","dependencies_parsed_at":null,"dependency_job_id":"ac1ef354-de4e-40be-9ad0-6c98a544f525","html_url":"https://github.com/jmanhype/MCPhoenix","commit_stats":null,"previous_names":["jmanhype/mcpheonix","jmanhype/mcphoenix"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jmanhype%2FMCPhoenix","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jmanhype%2FMCPhoenix/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jmanhype%2FMCPhoenix/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jmanhype%2FMCPhoenix/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jmanhype","download_url":"https://codeload.github.com/jmanhype/MCPhoenix/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245999360,"owners_count":20707555,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":[],"created_at":"2025-03-28T09:01:50.037Z","updated_at":"2025-03-28T09:01:51.663Z","avatar_url":"https://github.com/jmanhype.png","language":"Elixir","funding_links":[],"categories":["📚 Projects (1974 total)","Elixir"],"sub_categories":["MCP Servers"],"readme":"# MCPheonix\n\nA simplified implementation of the Model Context Protocol (MCP) server using Elixir's Phoenix Framework.\n\n## Overview\n\nMCPheonix provides a server that implements the Model Context Protocol, allowing AI models to interact with your application data and functionality. This implementation is designed to be simple and easy to understand, without heavy dependencies on frameworks like Ash.\n\n## Features\n\n- Server-Sent Events (SSE) stream for real-time notifications\n- JSON-RPC endpoint for client requests\n- Simple resource system\n- Event publish/subscribe mechanism\n- Basic tool invocation\n- Flux image generation integration\n- Dart task management integration\n- Extensible MCP server architecture\n\n## Getting Started\n\n### Prerequisites\n\n- Elixir 1.14 or higher\n- Erlang 25 or higher\n- Phoenix 1.7.0 or higher\n- Python 3.9+ (for Flux and Dart integration)\n- Node.js 18+ (for Dart MCP server)\n\n### Installation\n\n1. Clone the repository\n```bash\ngit clone https://github.com/yourusername/mcpheonix.git\ncd mcpheonix\n```\n\n2. Install dependencies\n```bash\nmix deps.get\n```\n\n3. Configure the Flux integration (if using image generation)\n   - Set up the Flux CLI environment as described in the [Flux Integration](#flux-integration) section\n\n4. Configure the Dart integration (if using task management)\n   - Set up the Dart MCP server as described in the [Dart Integration](#dart-integration) section\n\n5. Start the server\n```bash\nmix phx.server\n```\n\nThe server will be available at http://localhost:4001.\n\n### Adding Custom MCP Servers\n\nMCPheonix is designed to work with multiple MCP servers. This system includes a flexible infrastructure for integrating custom MCP servers through:\n\n1. **Simple JSON Configuration**: Define your server settings in `priv/config/mcp_servers.json`:\n```json\n{\n  \"mcpServers\": {\n    \"your_server_id\": {\n      \"command\": \"/path/to/executable\",\n      \"args\": [\"arg1\", \"arg2\"],\n      \"env\": {\n        \"ENV_VAR1\": \"value1\",\n        \"ENV_VAR2\": \"value2\"\n      },\n      \"tools\": {\n        \"your_tool\": {\n          \"description\": \"Description of your tool\",\n          \"parameters\": [\n            { \"name\": \"param1\", \"type\": \"string\", \"description\": \"Parameter description\" }\n          ]\n        }\n      }\n    }\n  }\n}\n```\n\n2. **Automatic Server Management**: Servers are automatically loaded and managed during application startup.\n\nFor comprehensive implementation details, including the Elixir architecture, server lifecycle management, and protocol handling, see the [Adding MCP Servers](docs/adding_mcp_servers.md) documentation.\n\n## MCP Endpoints\n\n- **SSE Stream**: `GET /mcp/stream`\n  - Establishes a Server-Sent Events stream for receiving real-time notifications\n  - Returns a client ID in the response headers\n\n- **JSON-RPC**: `POST /mcp/rpc`\n  - Accepts JSON-RPC 2.0 requests\n  - Client ID can be provided in the `x-mcp-client-id` header or will be generated if missing\n\n## Built-in Capabilities\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjmanhype%2FMCPhoenix","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjmanhype%2FMCPhoenix","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjmanhype%2FMCPhoenix/lists"}