使用说明
重新广播MCP
Recast MCP是一个托管的无代码平台,将任何REST API作为实时MCP服务器公开给AI代理(Claude、Cursor、ChatGPT)。
目录布局
recast_mcp/
├── services/ # Rust services
│ ├── gateway/ # MCP protocol proxy (port 3000)
│ ├── api/ # Platform control plane (port 3001)
│ └── credential-injector/ # Credential sidecar (port 3002)
├── libs/ # Shared Rust libraries
│ ├── mcp-protocol/ # MCP JSON-RPC types
│ ├── mcp-crypto/ # AES-256-GCM encryption
│ └── common/ # Shared types, errors, utilities
├── apps/ # Frontend applications
│ └── web/ # React 19 + TypeScript web UI
├── Cargo.toml # Rust workspace root
├── Cargo.lock # Rust workspace lockfile
├── package.json # Node.js workspace root (pnpm)
├── pnpm-lock.yaml # Frontend lockfile
├── rust-toolchain.toml # Pinned Rust version
├── .cargo/config.toml # Cargo build configuration
└── docs/ # Project documentation
技术栈
- 锈蚀: axum, 东京, serde, sqlx, aes-gcm
- 前端: React 19, TypeScript, Vite, 状态
- 数据库: PostgreSQL
- 认证: 职员
- CI/CD: 啄木鸟CI
- 集装箱: Docker+Docker组合
先决条件
- Rust(稳定)-固定版本
rust-toolchain.toml - Node.js 18+和pnpm 9.0+
- PostgreSQL 15+(通过docker compose进行本地开发)
- Docker和Docker compose(可选,用于容器化本地设置)
快速开始
Rust设置
# Install Rust (if not already installed)
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
# Build all Rust crates
cargo build --workspace
# Run tests
cargo test --workspace
# Check for warnings
cargo clippy --workspace -- -D warnings
# Run formatter check
cargo fmt --check
前端设置
# Install pnpm (if not already installed)
npm install -g pnpm
# Install frontend dependencies
pnpm install
# Type-check the web app
pnpm --filter @mcp/web type-check
# Build the web app
pnpm --filter @mcp/web build
# Run lint checks
pnpm --filter @mcp/web lint
# Start dev server (runs on localhost:5173)
pnpm --filter @mcp/web dev
使用Docker Compose进行本地开发
即将推出——请参阅路线图中的TASK-005。
建筑
服务
网关(服务/网关)
多租户MCP代理,将传入的MCP请求路由到配置的上游API。通过HTTP和SSE处理JSON-RPC 2.0。
平台API(服务/API)
用于管理MCP服务器、凭据和身份验证令牌的控制平面。为web UI提供REST API。
凭证注入器(服务/凭证注入器)
Sidecar服务,解密凭据并通过Unix域套接字将其注入上游请求。
图书馆
mcp协议(libs/mcp协议)
MCP消息的可序列化类型: JsonRpcRequest, JsonRpcResponse, JsonRpcError实现序列化/反序列化以符合JSON-RPC 2.0标准。
mcp加密(libs/mcp加密)
凭证的AES-256-GCM加密/解密。每次加密生成随机的12字节IV,存储IV+密文。
common(libs/common)
共享错误类型(AppError),特征(FromEnv 用于配置加载)以及所有服务使用的实用程序。
代码样式和Lints
- Clippy规则:
deny(unwrap_used),deny(expect_used),deny(panic),deny(unimplemented),deny(todo)--生产代码中没有恐慌 - Rust版本: 2021
- 格式:
cargo fmt(在CI中强制执行) - 文件: 所有公共API都必须有rustdoc注释;
cargo doc --no-deps必须生成无警告
测试
- 所有服务均包括以下单元测试
src/ - 集成测试在一个
testing货物功能(见路线图中的TASK-010) - 与一起跑步
cargo test --workspace
文档
- docs/SUMMARY.md --完整的产品规格
- 文档/故事/ --史诗和任务分解
- CLAUDE.md --代码库惯例和构建指南
路线图
该项目分为10个基本任务(任务001至任务010),包括:
- Monorepo脚手架✓
- PostgreSQL架构
- 共享库
- CI/CD管道
- Docker编写本地开发
- 遥测(开放遥测)
- 配置管理
- API错误合约
- 健康检查端点
- 集成测试框架
接下来是6部史诗:
- EPIC-01:基础服务
- EPIC-02:网关核心
- EPIC-03:生成器用户界面
- EPIC-04:部署和运营
- EPIC-05:可扩展性
- EPIC-06:高级功能
贡献
确保所有代码:
- 没有警告的构建:
cargo build --workspace - 传递片段:
cargo clippy --workspace -- -D warnings - 格式为:
cargo fmt - 有测试:
cargo test --workspace - 有文档:
cargo doc --no-deps
许可证
阿帕奇-2.0
