使用说明
用于PostgreSQL数据库操作的MCP服务器
此MCP(模型上下文协议)服务器为教师助理ADK系统提供数据库访问工具。它将PostgreSQL数据库操作作为MCP工具公开,AI代理可以使用这些工具与学生数据、出勤记录、学术记录和行为跟踪进行交互。
概述
MCP服务器充当AI代理和PostgreSQL数据库之间的桥梁,通过标准化协议提供对教育数据的安全和结构化访问。
特性
数据库连接管理:与Google Cloud SQL PostgreSQL的安全连接 学生管理:学生记录的CRUD操作 学术记录:成绩和学习成绩跟踪 考勤追踪:学生出勤管理和报告 行为记录:行为观察和情绪跟踪 用户管理:教师、家长和管理员用户管理 动态查询:具有过滤选项的灵活数据库查询 综合录井:用于调试和监控的详细活动日志记录
数据库模式
服务器通过以下主表连接到PostgreSQL数据库:
核心表
app.students-学生信息和人口统计 app.users-教师、家长和管理员用户 app.academic_records-成绩和学习成绩 app.attendence-每日考勤记录 app.behavior_records-行为观察和情绪分析
可用的MCP工具
常规数据库操作
list_db_tables-列出所有可用的数据库表 get_table_schema-获取特定表的列信息 query_db_table-使用条件执行自定义查询 insert_data-将新记录插入到任何表中 delete_data-根据条件删除记录
学生管理
get_students-通过筛选检索学生记录 add_student-添加新的学生记录 update_student-更新现有学生信息 get_students_by_class-获取特定班级/部分的所有学生
学术记录
get_academic_records-检索学业成绩数据 add_academic_record-记录新的成绩或学术成就
考勤管理
get_attendance_records-检索考勤数据 mark_attendence-记录学生出勤情况 get_attendance_summary-生成考勤统计
行为跟踪
get_behavior_records-检索行为观察结果 add_behavior_record-记录新的行为记录 get_behavior_summary-生成行为分析
用户管理
get_users-检索用户帐户 add_user-创建新用户帐户 update_user-更新用户信息 get_users_by_role-按角色(教师/家长/管理员)筛选用户 get_teachers_by-subject-按学科领域查找教师
配置
数据库连接
服务器通过以下配置连接到PostgreSQL数据库:
python
数据库凭据(在server.py中更新)
用户名=“your_username” 密码=“您的密码” host=“your_host” 端口=“5432” 数据库=“学生”
环境设置
- 确保PostgreSQL连接
- 验证应用程序架构中是否存在数据库架构
- 配置适当的数据库权限
安装和设置
先决条件
Python 3.8+ PostgreSQL数据库访问 必需的Python包(见下面的要求)
依赖项
bash pip安装sqlalchemy psycopg2二进制python dotenv谷歌adk代理mcp
运行MCP服务器
作为独立服务器
bash cd教师助理 python服务器.py
与ADK Agent集成
MCP服务器被设计为与主教师助理ADK系统集成。代理可以连接到此MCP服务器以访问数据库功能。
使用示例
基础数据库查询
python
列出所有表格
wait call_tool(“list_db_tables”,{“dummy_param”:“required”})
获取学生信息
等待call_tool(“get_students”{ “class_value”:“10”, “节”:“A” })
学术记录管理
python
添加新等级
等待调用工具(“add_academic_record”{ “student_id”:12345, “学科”:“数学”, “等级”:“A”, “记录日期”:“2024-01-15”, “teacher_id”:1 })
为学生获取学术记录
等待call_tool(“get_academic_records”{ “student_id”:12345, “学科”:“数学” })
考勤追踪
python
标记出席情况
等待call_tool(“mark_adtendance”{ “student_id”:12345, “出席日期”:“2024-01-15”, “状态”:“当前” })
获取考勤摘要
等待调用工具(“get_attendance_summary”{ “student_id”:12345, “开始日期”:“2024-01-01”, “结束日期”:“2024-01-31” })
安全考虑
数据库凭据:安全地存储凭据,考虑使用环境变量 输入验证:所有用户输入都经过验证和参数化,以防止SQL注入 架构隔离:使用应用程序模式进行数据隔离 连接管理:通过清理进行适当的连接生命周期管理
日志记录与监视
服务器包括全面的日志记录:
python
日志文件位置
LOG_FILE_PATH=“教师助理/mcp_server_active.LOG”
日志级别:调试、信息、警告、错误、严重
日志包括: 工具执行请求和响应 数据库连接状态 带有堆栈跟踪的错误详细信息 性能指标
错误处理
服务器实现了强大的错误处理:
数据库连接错误:妥善处理连接问题 无效参数:验证和用户友好的错误消息 SQL错误:安全的错误报告,不会暴露敏感信息 工具执行错误:用于调试的结构化错误响应
数据库架构要求
确保你的PostgreSQL数据库具有以下结构:
SQL语言 --示例表结构(根据需要调整)
如果不存在应用程序,则创建方案;
创建TABLE应用程序。学生( id串行主键, student_id整数唯一不为空, student_name VARCHAR(255)不为空, parent_name VARCHAR(255), 父母电话VARCHAR(20), 类值VARCHAR(10), VARCHAR(10)节, 出生日期, 性别VARCHAR(10), created_at时间戳默认电流_时间戳, updated_at时间戳默认电流_TIMESTAMP );
--附加表:用户、学术记录、出勤、行为记录
与主应用程序集成
MCP服务器设计用于与主教师助理ADK应用程序配合使用:
- 代理集成:主代理连接到此MCP服务器进行数据库操作
- 工具发现:代理自动发现可用的数据库工具
- 安全通信:使用MCP协议进行结构化通信
- 数据一致性:确保所有操作的数据完整性
故障排除
常见问题
-
数据库连接失败
- 验证数据库凭据
- 检查网络连接
- 确保PostgreSQL服务正在运行
-
未找到工具
- 验证工具名称是否完全匹配
- 检查ADK_DB_TOOLS中的刀具注册
-
权限不足
- 验证数据库用户权限
- 检查架构访问权限
-
无效参数
- 审查工具参数要求
- 验证数据类型和格式
调试模式
通过将日志级别设置为DEBUG来启用详细日志记录:
python logging.basicConfig(级别=logging.DEBUG)
贡献
添加新数据库工具时:
- 使用适当的类型提示和文档字符串创建函数
- 添加输入验证和错误处理
- 在ADK_DB_TOOLS中注册该工具
- 更新此文档
- 添加适当的测试
许可证
此MCP服务器是教师助理ADK项目的一部分。详见主项目许可证。
支持
对于MCP服务器特有的问题:
- 检查日志文件以获取详细的错误信息
- 验证数据库连接和权限
- 确保安装了所有必需的依赖项
- 审查参数格式和要求
有关一般项目支持,请参阅主要项目文档。