使用说明
# MCP Server Manager (Phase 1)
**Course:** SEP-759 - McMaster University
**Developer:** Zihe Mai
**Environment:** Ruby 3.3.6 | Rails 8.1.3 | PostgreSQL (Docker)
## 📌 Project Overview
The **MCP Server Manager** is a centralized hub for managing Model Context Protocol (MCP) integrations. It allows users to connect various AI Clients (like Claude or Cursor) to a catalog of global MCP Servers (Notion, GitHub, etc.), enabling secure data access and tool execution for AI agents.
---
## 🚀 Getting Started
### 1. Prerequisites
Ensure you have the following installed on your MacBook:
* **Ruby 3.3.6**
* **Rails 8.1.3**
* **Docker Desktop** (for the PostgreSQL database)
### 2. Database Setup
This project uses PostgreSQL running in a Docker container.
```bash
# Start the database container
docker-compose up -d
# Setup the database and tables
bin/rails db:prepare
# Seed the database with test users and servers
bin/rails db:seed
3.启动应用程序
bin/rails server
访问应用程序: http://localhost:3000
🔑 测试证书
使用这些帐户探索多用户功能和 N: M(多对多) 关系。
| 用户角色 | 电子邮件 | 密码 |
|---|---|---|
| 管理员用户 | admin@test.com |
password123 |
| 学生用户 | student@test.com |
password123 |
🛠 功能(第一阶段要求)
1.数据库和关系
该应用程序实现了一个满足以下准则的复杂关系结构:
- 1:N(一对多): 用户有许多AI客户端(例如Claude、Cursor)。
- N: M(多对多): 用户通过以下方式连接到全局MCP服务器
Connections加入桌子。 - 嵌套资源: 工具嵌套在MCP服务器下(
/mcp_servers/:id/tools).
2.身份验证
- 使用自定义身份验证系统
bcrypt和has_secure_password. - 具有会话持久性的安全登录/注销流程。
3.现代UI/UX
- 侧栏导航: 动态侧边栏列出了用户的特定客户端和活动服务器。
- 浮动窗口(模态): 工具列表和帐户设置在模糊的背景浮动窗口中打开,给人一种现代的“应用程序”感觉。
- 档案管理: 集成 活动存储 用于上传个人资料照片(第2阶段奖金预览)。
📂 项目结构亮点
app/models/:包含用户、客户端、McpServers、工具和连接的逻辑。app/views/shared/_sidebar.html.erb:一个干燥、可重复使用的侧边栏组件。db/seeds.rb:自动填充全局服务器目录(Notion、ChatGPT、Stripe等)并附加标准工具(shell,read,write,database)每个人。
🧪 第二阶段路线图
- []实现基于Devise的JWT身份验证。
- []在下创建5+JSON API终结点
api/v1/. - []配置连接通知的操作邮件程序。
- []使用AWS S3部署到Heroku进行主动存储。
---
### How to add this to your project:
1. **Create the file:** `touch README.md`
2. **Open it:** `open README.md` (or use VS Code).
3. **Paste the text above.**
4. **Push to GitHub:**
```bash
git add README.md
git commit -m "Added professional README for Phase 1 submission"
git push
```
Does this cover everything you wanted for your submission, or should we add a specific section about the **PIRO** project you mentioned earlier?````