Token导航 LogoToken导航TokenDH.com
ms access control logo
数据服务stdio官方级别未说明来源级核验

ms access control

MCP Server

一个强大的模型上下文协议(MCP)服务器,提供与Microsoft Access数据库的无缝集成功能。

工具数

17

提示词数

0

GitHub Stars

2

资源数

0
数据分析数据操作PythonClaudeClaude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

ayamnash

提供方

ayamnash

最后核验

2026/5/17 20:21

运行时

Python

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

python -c "import platform; print(platform.architecture())"

详细介绍

测试fastmcp==2.11.3(推荐)它100%工作

有些版本可能无法完美运行。

MCP服务器ms_Access🚀

一个强大的模型上下文协议(MCP)服务器,提供与Microsoft Access数据库的无缝集成。此服务器使您能够通过MCP兼容的应用程序(如Kiro IDE)创建、管理和查询Access数据库。

先决条件

  • Windows操作系统 (Access集成所需)
  • Python 3.13+
  • Microsoft Access 数据库引擎 建议使用2016版本。(必填-请参阅下面的安装指南)
  • 紫外线 包管理器(推荐)

⚠️ 重要提示:位架构兼容性

Python、Microsoft Access、Microsoft Access数据库引擎必须具有相同的位架构(32位或64位)。 Microsoft Access数据库引擎2016可再分发

选择:

访问数据库引擎.exe→ 适用于32位系统或32位Office

访问数据库引擎_X64.exe→ 适用于64位Office

🧪 摘要: 功能2010发动机2016发动机 兼容性Office 2010–2013 Office 2010–2021 新的Excel/Access支持❌ 有限的✅ 满的 经得起未来考验❌ 不✅ 是 稳定性✅ 是✅ 是 Bitness必须与Office匹配✅ 是✅ 是

检查你的Python架构

打开终端(CMD或PowerShell)并运行:

python -c "import platform; print(platform.architecture())"

这将显示以下任一内容:

  • ('64bit', 'WindowsPE') -你有64位Python
  • ('32bit', 'WindowsPE') -你有32位Python

检查您的Office/Excel架构

  1. 打开 Excel
  2. 点击 文件 标签
  3. 选择 账户
  4. 点击 关于Excel

您将看到类似以下内容:

Microsoft® Excel® 2016 MSO (Version 2506 Build 16.0.18925.20076) 32-bit

Microsoft® Excel® 2019 MSO (Version 2506 Build 16.0.18925.20076) 64-bit

最后一部分显示您的Office是32位还是64位。

安装Microsoft Access数据库引擎

您必须安装与Python架构匹配的Access数据库引擎:

对于64位Python:

对于32位Python:

安装注意事项:

我们将在虚拟环境中运行服务器。

选项1:使用紫外线(推荐)

首先,如果你还没有安装uv:

# Install uv using pip
pip install uv

Clone the repository

git clone https://github.com/ayamnash/MCP_server_ms_access_control.git cd MCP_server_ms_access_control

Create virtual environment and install dependencies

uv venv uv pip install -e .


### 选项2:使用pip

Clone the repository

git clone https://github.com/ayamnash/MCP_server_ms_access_control.git cd MCP_server_ms_access_control

Create virtual environment

python -m venv .venv

Activate virtual environment

On Windows:

.venv\Scripts\activate

Install dependencies

pip install -e .


## 配置

### Kiro IDE配置claude桌面

要将此MCP服务器与Kiro IDE一起使用,请将以下配置添加到MCP设置中:

#### 工作区配置(`.kiro/settings/mcp.json`)

如同

{ "mcpServers": { "msaccess": { "command": "F:\\mcp_server_ms_access_control1\\.venv\\Scripts\\python.exe", "args": [ "F:\\mcp_server_ms_access_control1\\server.py" ] } } }


Visual studio代码
.vcode\\mcp.json

{ "servers": { "msaccess": { "command": "F:\\mcp_server_ms_access_control1\\.venv\\Scripts\\python.exe", "args": [ "F:\\mcp_server_ms_access_control1\\server.py" ] } } }


### 桌面应用程序使用情况

您还可以将服务器作为独立应用程序运行:

Activate your virtual environment first

.venv\Scripts\activate

Run the server

python server.py


# **快速样品**

(1) 使用msaccess MCP服务器进行连接
C: \\Users\\it\\AppData\\Local\\Programs\\Kiro\\treeview.accdb连接时请确保保存更改并关闭数据库工具
并确保在遇到错误时使用此工具。
.
我创建表单以树形结构显示帐户
请查看所附图片7.1.png
我需要创建一个类似于附加的7.png图像的报告
使用mcp来做到这一点?

(2) 在此路径F:\\mcp_server_ms_Access_control中创建一个名为pos.accdb的Microsoft Access数据库

对于具有以下结构的销售点(POS)系统:

数据库名称pos.accdb

📦 项目表:

项目ID:唯一ID(自动编号)

ItemName:项目的名称

项目价格:每单位价格

项目描述:可选文本

🔁 交易表:

事务ID:唯一ID(自动编号)

ItemID:指向Items表的链接

交易类型:“购买”或“销售”

数量:项目数量

TransactionDate:交易日期

💸 费用表:

ExpenseID:唯一ID(自动编号)

支出类型:支出类型/类别

金额:花费了多少

支出日期:支出日期

______________________________________________________________________

创建并保存四个查询:

1. 两个日期之间的销售额

计算按开始和结束日期过滤的总销售额(项目价格×数量)。

2. 两个日期之间的购买金额

计算两个日期之间的总采购量(项目价格×数量)。

3. 两个日期之间售出的物品总数

按商品名称分组,计算两个日期之间每件商品的销售量。

4两个日期之间的详细费用

______________________________________________________________________

将查询另存为:

qry_销售额_间隔日期

qry_购买金额_间隔日期

qry_SumSoldItems_BetweenDate

qry_expense_details

fix可能遇到的问题已修复:
唯一的问题是Items表的创建-初始ItemDescription字段大小(500个字符)对于Access来说太大。我通过将其减少到255个字符来解决这个问题,这是Access文本字段的标准最大字符数。

所有查询都使用参数提示\[Start Date\]和\[End Date\],因此当您在Access中运行它们时,系统会提示您输入日期范围。数据库已准备好使用!

\============================================

(3) 使用mcp服务器
在此文件夹路径中的Microsoft Access名称Laundry_managemet1.accdb中创建一个完整的洗衣管理应用程序
F: \\mcp_server_ms_access_control1。

要求:

数据库结构

使用正确的字段名、数据类型和主键/外键创建所有必要的表。

至少包括以下实体:
表格:-

客户(客户ID、姓名、电话、地址等)

洗衣物品(物品ID、描述、每单位价格等)

订单(订单ID、客户ID、订单日期、到期日期、状态等)

订单详细信息(OrderDetailID、OrderID、ItemID、数量、小计等)

付款(付款ID、订单ID、付款日期、金额、付款方式等)
创建表后,将所有表的数据插入到测试中
查询:-

创建以下查询:

今天到期的订单

名为sales_dm的每日/每月总销售额

未付款订单

客户订单历史

表格:-

客户管理表单(添加、编辑、删除)。

带有订单详细信息子表单的订单输入表单。

付款输入表。

报告:-
从Customers表中创建名为customer_report的报告
从sales_dm查询中创建名为sales_dm的报表

\============================================

(4) 使用mcp服务器
在此文件夹路径F:\\mcp_server_ms_Access_control1中创建一个完整的Microsoft Access数据库,用于管理名为school_Management.accdb的学校。
数据库应包括所有必要的表、查询、表单和报告,每个表都有清晰一致的命名。该系统应支持学生注册、教师作业、课程安排、成绩、出勤和费用跟踪。

📁 桌子:
Students_Table:学生ID、名字、姓氏、出生日期、性别、地址、电话、电子邮件、注册日期、班级ID

Teachers_Table:教师ID、名字、姓氏、学科专业、电话、电子邮件、雇佣日期

Classes_Table:班级ID、班级名称、年级、教师ID、房间号

Subjects_Table:SubjectID、SubjectName、ClassID、TeacherID

成绩_表:成绩ID、学生ID、科目ID、年级、学期、年份

出席_表格:出席ID、学生ID、日期、状态(出席/缺席/迟到)、备注

Fees_Table:费用ID、学生ID、应付金额、已支付金额、应付日期、付款日期、状态

🔍 查询:
Outstanding_Fees_Query:未缴学费学生名单

出勤情况_总结_查询:每位学生的出勤情况总结

成绩_平均成绩_查询:每节课和每门科目的平均成绩

教师_分配_查询:分配给每个班级的教师

🧾 形式:
学生_注册_表格:用于输入和更新学生详细信息

Teacher_Profile_Form:用于输入教师信息

Class_Scheduling_Form:用于管理课堂细节和作业

成绩_条目_表格:用于记录学生成绩

出勤_跟踪_表格:用于标记和审查出勤情况

费用_支付_形式:用于记录费用支付

📊 报告:
Student_Report_Card:显示学生成绩和表现

每月_出席情况_报告:每月出席情况概览

费用_收款_报告:费用支付和应付款项汇总

Class_Schedule_Report:课程表概述

教师_工作量_报告:教师作业和科目摘要

使用主键和外键确保关系完整性。使用组合框、子表单和验证规则来提高可用性。为学校管理人员设计直观的界面。

📌 特性

[v1功能视频](https://www.youtube.com/watch?v=TplSweAx4XU)

[v2功能视频](https://www.youtube.com/watch?v=vtuiIgX98t4)

[v3功能视频](https://www.youtube.com/watch?v=2-KPeqXjBLw)
[v3.1功能视频](https://www.youtube.com/watch?v=JzANtOsIbrU)

🎨 表单创建工具(v3-新!)
📝 generate_form_template–为Access表单生成文本模板

🏗️ create_form_from_llm_text–根据文本定义创建Access表单

🗃️ 数据库结构工具
🏗️ create_database–创建一个空的Access.accdb数据库

🧱 create_table–创建具有指定模式的表

📋 list_tables–列出数据库中的所有表

📊 数据管理工具
➕ insert_data–将行插入表中

🧮 run_query–执行SQL查询(SELECT、UPDATE、DELETE等)

🔎 查询管理工具
💾 save_query–在Access数据库中保存一个命名查询

📄 list_saved_queries–列出数据库中所有已保存的查询

📜 VBA模块工具(v2)
📚 list_vba_modules–列出Access数据库中的所有vba模块

📖 read_vba_module–从特定vba模块读取代码

✍️ write_vba_module–使用提供的代码创建或替换vba模块

❌ delete_vba_module–从数据库中删除vba模块

🚀 run_vba_function–执行vba函数并返回结果

✨ **支持的表单类型:**

- **单一表格** –用于数据输入和查看的独立表单
- **子表格** –设计用于嵌入其他表单的表单(数据表视图)
- **主要表格及其子表格** –带有嵌入式子表单和自动链接的主详细信息表单

🔧 **增强工具(v3改进):**

- **改进了错误处理** –为所有操作提供更好的错误消息和反馈
- **增强的查询管理** –修复了保存查询中的参数处理
- **优化表单生成** –自动生成GUID和NameMap,以实现稳健的表单创建
- **更好的现场验证** –改进了数据类型处理和字段大小验证

## 可用工具

MCP服务器提供以下工具:

### 🗄️ 数据库管理

- **`create_database(db_name: str)`** -创建新的Access数据库
- **`list_tables(db_name: str)`** -列出数据库中的所有表

### 🏗️ 表操作

- **`create_table(db_name: str, table_name: str, schema: str)`** -创建新表
  - 示例架构: `"ID INT PRIMARY KEY, Name TEXT(100), Age INT"`

### 📊 数据运营

- **`insert_data(db_name: str, table: str, rows: list[dict])`** -将数据插入表中
  - 例子: `[{'ID': 1, 'Name': 'John', 'Age': 30}]`
- **`run_query(db_name: str, sql: str)`** -执行SQL查询(SELECT、UPDATE、DELETE等)

### 💾 查询管理

- **`save_query(db_name: str, query_name: str, sql: str)`** -保存命名查询
- **`list_saved_queries(db_name: str)`** -列出所有已保存的查询

### 📜 VBA模块管理(v2)

- **`list_vba_modules(db_name: str)`** -列出Access数据库中的所有VBA模块
- **`read_vba_module(db_name: str, module_name: str)`** -从特定VBA模块读取代码
- **`write_vba_module(db_name: str, module_name: str, code: str)`** -使用提供的代码创建或替换VBA模块
- **`delete_vba_module(db_name: str, module_name: str)`** -从数据库中删除VBA模块
- **`run_vba_function(db_name: str, function_name: str, args: str)`** -执行VBA函数并返回结果

### 🎨 表单创建工具(v3-新!)

- **`generate_form_template(db_name: str, record_source: str, form_type: str, ...)`** -为Access表单生成文本模板
  - **form_type选项:**
    - `"single"` -标准独立形式
    - `"subform"` -为嵌入而设计的表单(数据表视图)
    - `"main"` -包含具有自动链接的子表单的表单
- **`create_form_from_llm_text(db_name: str, form_name: str, form_text: str)`** -从文本定义创建Access表单
  - 自动生成GUID和名称映射
  - 处理表单验证和错误更正
  - 支持带有子表单的复杂表单布局

📊 报表创建工具(v3.1-新增!)
📋 create_report_from_source–一步创建完整的Access报告

📝 generate_report_template–为Access报告生成可自定义的文本模板

🏗️ create_report_from_template–根据文本定义创建Access报告

✨ **支持的报告类型:**

- **表格报告** –数据以行和列显示(默认)
- **专栏报道** –数据以单列布局显示
- **自定义报告** –使用模板完全可定制的报告

import win32com.client adox = win32com.client.Dispatch("ADOX.Catalog") conn_string = f"Provider=Microsoft.ACE.OLEDB.12.0;Data Source={db_path};" adox.Create(conn_string) # This creates the .accdb file

ADOX and why it's more reliable than ODBC ADOX (ActiveX Data Objects Extensions) is a Microsoft COM library specifically designed for database schema operations like creating databases and tables.

Why ADOX is better than ODBC for creating Access databases:

ODBC (Open Database Connectivity) is a general-purpose database interface that sometimes has registry access issues on Windows ADOX uses Windows COM (Component Object Model) which has direct access to the Access database engine ADOX bypasses the registry issues that cause the "Unable to open registry key" errors you were seeing ADOX is Microsoft's recommended method for programmatically creating Access databases Here's what happens in the code:

pyodbc

Driver detection: The code uses pyodbc.drivers() to list available database drivers Table creation and data operations: After ADOX creates the empty database file, pyodbc is used to: Connect to the database Create the table Insert sample data Read data for verification

ADOX: Creates the empty .accdb file pyodbc: Handles all the SQL operations (CREATE TABLE, INSERT, SELECT) So the combination gives you the best of both worlds:

ADOX for reliable database file creation pyodbc for standard SQL operations This is why your script now works - it uses the most reliable method for each task instead of trying to do everything through ODBC alone.

Troubleshooting

Common Issues

  1. Access Driver Not Found

异常:找不到访问ODBC驱动程序

Solution:

  • Install Microsoft Access Database Engine 2016 Redistributable
  • Critical: Ensure the database engine matches your Python architecture (32-bit or 64-bit)
  • Check available drivers: python -c "import pyodbc; print(pyodbc.drivers())"
  1. Architecture Mismatch Error

\[Microsoft\]\[ODBC驱动程序管理器\]指定的DSN包含架构不匹配

Solution:

  • Your Python and Access Database Engine have different architectures
  • Check Python architecture: python -c "import platform; print(platform.architecture())"
  • Check Office architecture: Excel → File → Account → About Excel
  • Install matching Access Database Engine version
  1. Office 2016/2019 Installation Conflicts

您无法安装64位版本的Microsoft Access数据库引擎2016,因为您当前安装了32位Office产品

Solution:

  • Use the /quiet parameter: AccessDatabaseEngine_X64.exe /quiet
  • Or uninstall existing Office, install database engine, then reinstall Office
  • Consider using the same architecture for both Python and Office
  1. Permission Errors
  • Run installer as Administrator
  • Check file permissions in the target directory
  • Ensure the database file location is writable
  1. Python Path Issues
  • Ensure your virtual environment is activated
  • Verify all dependencies are installed: pip list
  • Check if pywin32 is properly installed: python -c "import win32com.client"

Architecture Compatibility Quick Reference

Your SetupPython ArchitectureRequired Database Engine
32-bit Office 2016/201932-bit PythonAccessDatabaseEngine.exe (32-bit)
64-bit Office 2016/201964-bit PythonAccessDatabaseEngine_X64.exe (64-bit)
No Office installed32-bit PythonAccessDatabaseEngine.exe (32-bit)
No Office installed64-bit PythonAccessDatabaseEngine_X64.exe (64-bit)

System Requirements

  • Windows 10/11
  • Microsoft Access 2016+ or Access Database Engine
  • Python 3.8 or higher
  • At least 100MB free disk space

Contributing

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

License

This project is licensed under the MIT License - see the LICENSE file for details.

Support

  • 📧 Email: ayamnash@gmail.com
  • 🐛 Issues:

Made with ❤️ for the MCP community

目录标签

目录标签

数据分析数据操作PythonClaude数据库管理本地部署Access集成MCP协议自动化工具

支持客户端

Claude

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

none

运行时(runtime,运行环境)

Python

工具数量(toolCount,工具数)

17

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdionone部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP