PostgreSQL数据库操作服务

MCP服务器为教师助理ADK系统提供PostgreSQL数据库访问工具,支持学生数据、考勤记录、学术记录和行为跟踪的CRUD操作。

  • by AbhijithPRanjith007
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 abhijithpranjith007/mcp-server

使用说明

用于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” 数据库=“学生”

环境设置

  1. 确保PostgreSQL连接
  2. 验证应用程序架构中是否存在数据库架构
  3. 配置适当的数据库权限

安装和设置

先决条件

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应用程序配合使用:

  1. 代理集成:主代理连接到此MCP服务器进行数据库操作
  2. 工具发现:代理自动发现可用的数据库工具
  3. 安全通信:使用MCP协议进行结构化通信
  4. 数据一致性:确保所有操作的数据完整性

故障排除

常见问题

  1. 数据库连接失败

    • 验证数据库凭据
    • 检查网络连接
    • 确保PostgreSQL服务正在运行
  2. 未找到工具

    • 验证工具名称是否完全匹配
    • 检查ADK_DB_TOOLS中的刀具注册
  3. 权限不足

    • 验证数据库用户权限
    • 检查架构访问权限
  4. 无效参数

    • 审查工具参数要求
    • 验证数据类型和格式

调试模式

通过将日志级别设置为DEBUG来启用详细日志记录:

python logging.basicConfig(级别=logging.DEBUG)

贡献

添加新数据库工具时:

  1. 使用适当的类型提示和文档字符串创建函数
  2. 添加输入验证和错误处理
  3. 在ADK_DB_TOOLS中注册该工具
  4. 更新此文档
  5. 添加适当的测试

许可证

此MCP服务器是教师助理ADK项目的一部分。详见主项目许可证。

支持

对于MCP服务器特有的问题:

  1. 检查日志文件以获取详细的错误信息
  2. 验证数据库连接和权限
  3. 确保安装了所有必需的依赖项
  4. 审查参数格式和要求

有关一般项目支持,请参阅主要项目文档。