MCP-MSAccess-Backend

使用说明(Markdown格式)

  • 项目简介

    • 该仓库实现了一个 MCP 服务器,核心通过 FastMCP 框架暴露一组工具函数,供 LLM 客户端通过 MCP 协议进行资源读取、工具执行、查询执行、VBA/表单/报表等数据库操作,从而将 Access 数据库的能力接入到大语言模型的工作流中。
  • 主要功能点

    • 资源与数据能力
      • 创建、列出数据库、创建表、插入数据、执行读写查询等底层数据库操作。
    • 工具注册与执行
      • 以装饰器方式将函数注册为 MCP 服务端工具,如 create_database、create_table、insert_data、run_query、list_tables、save_query、list_saved_queries、以及一系列与 VBA、表单、报表相关的工具。
    • 提示模板与表单/报表生成
      • 提供 generate_form_template、create_form_from_llm_text、generate_report_template 等工具,支持将 LLM 结果转换为 Access 表单、VBA 模块及报表的定义文本。
    • 多传输协议支持
      • 服务器通过 FastMCP 提供 JSON-RPC 顺序调用,理论上可扩展为标准输入/输出、SSE、WebSocket 等传输协议,以适配不同客户端。
    • 会话与并发管理
      • 代码中包含对 Access 数据库的打开/关闭、锁文件等待、批量操作模式等逻辑,确保在并发场景下尽量安全地执行数据库操作。
  • 安装步骤

    • 环境要求
      • Windows 操作系统(Access 相关组件)
      • Python 3.x(示例中使用 3.x,文档要求 3.8+)
      • Microsoft Access Database Engine(与 Python 架构位数相匹配)
    • 依赖与部署
      • 通过虚拟环境安装依赖并本地运行 server.py(示例:uv 工具或直接 Python 运行)
    • 启动服务器(示意)
      • 在项目目录下执行服务器脚本:python server.py
      • 也可在虚拟环境中以 uw 方式启动,确保依赖可用
  • 服务器配置(MCP 客户端连接所需的配置示例,JSON 格式)

    • 说明:MCP 客户端需要知道服务器的启动命令与参数,以便与 MCP 服务器建立连接。下面为一个准确且简化的配置示例,需按实际本地路径调整:
    • server_name: msaccess
    • command: 路径到你的 Python 解释器,例如 C:\Path\To\Python\python.exe
    • args:包含你要启动的服务器脚本的完整路径,例如 ["C:\Path\To\MCP_MSAccess\server.py"]
    • 注释:
      • server_name 用于在客户端侧标识该 MCP 服务器实例
      • command 指向用于启动服务器的解释器
      • args 指向服务器入口脚本(server.py)的完整路径
    • 典型配置(描述性文本)
      • server_name: "msaccess"
      • command: "C:\Path\To\Python\python.exe"
      • args: ["C:\Path\To\MCP_MSAccess\server.py"]
      • transport 或其他扩展项(若客户端支持)可根据实际客户端实现添加
    • 说明:该配置仅用于客户端连接服务器,具体不需要在 MCP 客户端包含实现细节。
  • 基本使用方法

    • 启动后,客户端可以发送标准的 MCP 请求来调用注册的工具,例如创建数据库、创建表、执行查询、保存/列出查询等。
    • 客户端通过 JSON-RPC 的请求格式与服务器通信,获取执行结果、返回数据或错误信息。
    • 结合日志与错误处理机制,可以在需要时对并发锁、VBA 编译等情况进行诊断与重试。
  • 额外说明

    • 本实现包含较多对 Access 的直接操作(COM、ODBC 等),在非 Windows 环境下将不可运行,需在 Windows 环境中使用。
    • MCP 服务的具体 RPC 请求格式、响应格式遵循 MCP 的标准约定,客户端应按该协议进行实现。

关键词 LLM上下文服务, 数据资源管理, 外部工具调用, JSON-RPC 服务, 表单与报表生成

分类ID 6

服务器信息