AIO MCP
by CRTYPUBG
README.md
# AIO MCP
One Platform. Every MCP.
[](https://github.com/CRTYPUBG/aio-mcp/actions/workflows/ci.yml)
[](LICENSE)
[](https://www.rust-lang.org)
Language:
- English (default): README.md
- Turkce: [README_TR.md](README_TR.md)
## Overview
AIO MCP is a unified control plane and runtime for the Model Context Protocol ecosystem.
Core modules:
- Engine
- Plugin Manager
- Configuration Manager
- Permission Manager
- API Gateway
- Railway-ready HTTP server
## Architecture (ASCII)
```text
+---------------------------------------------------------+
| Experience Layer |
| Desktop App (Tauri) | Web Dashboard | CLI |
+---------------------------------------------------------+
| API Layer |
| REST /v1/* | WebSocket |
+---------------------------------------------------------+
| Core Services (Rust) |
| Engine | Plugin Manager | Config | Permission | Gateway |
+---------------------------------------------------------+
| Data Layer |
| SQLite / PostgreSQL / Redis |
+---------------------------------------------------------+
```
## Railway Deployment
AIO MCP runs as a pure HTTP API. A frontend is not required.
### 1) Environment variables
Add these in Railway Variables:
| Variable | Example | Notes |
|---|---|---|
| `AIO_API_KEYS` | `sk-your-secret-key` | Separate multiple keys with commas |
| `PORT` | auto | Provided by Railway |
| `RUST_LOG` | `aio_server=info` | Optional |
Generate a strong key:
```bash
openssl rand -hex 32
```
### 2) Deploy
```bash
railway login
railway link
railway up
```
## API Reference
All `/v1/*` endpoints require an API key.
Authentication:
```text
X-Api-Key: sk-your-key
# or
Authorization: Bearer sk-your-key
```
Public endpoints:
| Method | Path | Description |
|---|---|---|
| `GET` | `/` | Service info |
| `GET` | `/health` | Health check |
Protected endpoints:
| Method | Path | Description |
|---|---|---|
| `GET` | `/v1/plugins` | List plugins |
| `POST` | `/v1/plugins` | Register plugin |
| `GET` | `/v1/config/:scope/:key` | Get config |
| `PUT` | `/v1/config/:scope/:key` | Set config |
| `POST` | `/v1/permissions/request` | Request permission |
| `POST` | `/v1/permissions/grant` | Grant permission |
| `GET` | `/v1/permissions/check` | Check permission |
| `GET` | `/v1/services` | Core services |
| `GET` | `/v1/routes` | Route table |
Example:
```bash
curl -X POST https://your-app.up.railway.app/v1/plugins \
-H "X-Api-Key: sk-your-key" \
-H "Content-Type: application/json" \
-d '{"id":"official.github","version":"1.0.0"}'
```
## Local Development
Requirements:
- Rust stable
- Node.js 22+ (optional, for TypeScript app shells)
Run:
```bash
git clone https://github.com/CRTYPUBG/aio-mcp.git
cd aio-mcp
cp .env.example .env
# Set AIO_API_KEYS in .env
cargo run --package aio-server
```
Test:
```bash
cargo test --workspace
```
Build (dist output):
```powershell
powershell -ExecutionPolicy Bypass -File scripts/build.ps1
```
## Project Structure
```text
aio-mcp/
|- server/
|- core/
| |- engine/
| |- plugin-manager/
| |- configuration-manager/
| |- permission-manager/
| \- api-gateway/
|- apps/
| |- desktop/
| |- web-dashboard/
| \- cli/
|- docs/
|- schemas/
|- scripts/
|- assets/
|- Dockerfile
\- railway.json
```
## License
MIT - see [LICENSE](LICENSE).
This server cannot be deployed
Maintenance
ActivityInactive
ResponsivenessNo issues