经 AI Skill Hub 精选评估,MCP访问工具 获评「强烈推荐」。这款MCP工具在功能完整性、社区活跃度和易用性方面表现出色,AI 评分 8.0 分,适合有一定技术背景的用户使用。
编辑MS Access数据库VBA代码和控件的MCP服务器
MCP访问工具 是一款遵循 MCP(Model Context Protocol)标准协议的 AI 工具扩展。通过 MCP 协议,它可以让 Claude、Cursor 等主流 AI 客户端直接访问和操作外部工具、数据源和服务,实现 AI 能力的无缝扩展。无论是文件操作、数据库查询还是 API 调用,都可以通过自然语言在 AI 对话中直接触发,极大提升生产效率。
编辑MS Access数据库VBA代码和控件的MCP服务器
MCP访问工具 是一款遵循 MCP(Model Context Protocol)标准协议的 AI 工具扩展。通过 MCP 协议,它可以让 Claude、Cursor 等主流 AI 客户端直接访问和操作外部工具、数据源和服务,实现 AI 能力的无缝扩展。无论是文件操作、数据库查询还是 API 调用,都可以通过自然语言在 AI 对话中直接触发,极大提升生产效率。
# 方式一:通过 Claude Code CLI 一键安装
claude skill install https://github.com/unmateria/MCP-Access
# 方式二:手动配置 claude_desktop_config.json
{
"mcpServers": {
"mcp----": {
"command": "npx",
"args": ["-y", "mcp-access"]
}
}
}
# 配置文件位置
# macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
# Windows: %APPDATA%/Claude/claude_desktop_config.json
# 安装后在 Claude 对话中直接使用 # 示例: 用户: 请帮我用 MCP访问工具 执行以下任务... Claude: [自动调用 MCP访问工具 MCP 工具处理请求] # 查看可用工具列表 # 在 Claude 中输入:"列出所有可用的 MCP 工具"
// claude_desktop_config.json 配置示例
{
"mcpServers": {
"mcp____": {
"command": "npx",
"args": ["-y", "mcp-access"],
"env": {
// "API_KEY": "your-api-key-here"
}
}
}
}
// 保存后重启 Claude Desktop 生效
Give any AI assistant full control over Microsoft Access databases.
Create forms, write VBA, design tables, manage controls, run queries, build relationships, and edit every corner of an .accdb — all through natural language. 68 tools that turn Access into something you can talk to.
No Access expertise required. Just describe what you want.
"Create a form called Invoices with a ListBox, two date filters, and a search button"
"Add a VBA click handler that filters the recordsource by date range"
"Create a table called audit_log with timestamp, user, and action fields"
"List all controls inside the Payment tab and change the combo's row source"
The AI handles the COM automation, design view, VBA modules, binary sections, cache invalidation, and all the ugly parts. You get the result.
pip install mcp pywin32
| Tool | Description |
|---|---|
access_screenshot | Capture the Access window as PNG. Optionally opens a form/report first. Returns path, dimensions (original + image), and metadata. Configurable max_width (default 1920), wait_ms (pumps Windows messages — Timer events fire, ActiveX initializes), and open_timeout_sec (default 30 — sends ESC to cancel if Form_Load hangs on a slow query) |
access_ui_click | Click at image coordinates on the Access window. Coordinates are relative to a previous screenshot (image_width required for scaling). Supports left, double, and right click |
access_ui_type | Type text or send keyboard shortcuts. text for normal characters (WM_CHAR), key for special keys (enter, tab, escape, f1-f12, arrows, etc.), modifiers for combos (ctrl, shift, alt) |
1. access_screenshot(db, "form", "myForm") → capture form as PNG
2. (LLM reads the image and identifies UI elements)
3. access_ui_click(db, x=850, y=120, image_width=1920) → click a button
4. access_ui_type(db, text="search term") → type in a field
5. access_ui_type(db, key="enter") → press Enter
6. access_screenshot(db) → verify the result
| Tool | Description |
|---|---|
access_list_startup_options | List 14 common startup options (AppTitle, StartupForm, AllowBypassKey, etc.) with current values |
All three are read from the server process, so they go in the env block of your MCP client config and take effect on restart.
| Variable | Default | Effect |
|---|---|---|
MCP_ACCESS_ALLOW_CODE_EXEC | *off* | Set to 1/true/yes/on to enable access_run_vba, access_eval_vba and access_run_macro. Fails **closed**: anything else keeps them disabled. |
MCP_ACCESS_SHIFT_BYPASS | *on* | Set to 0/false/no/off to stop holding SHIFT during OpenCurrentDatabase and /decompile. Fails **open**: anything else keeps the bypass. |
MCP_ACCESS_EXCLUSIVE | *off* | Set to 1/true/yes/on to open the session's database exclusively. Fails **closed**: anything else stays shared. |
About the SHIFT bypass (v0.7.53). Holding SHIFT is how the server skips a database's AutoExec macro and startup form, but the key-down is a global OS event — it is not scoped to Access, so anything you type anywhere on the machine while it is held arrives capitalised (~0.3 s on every database switch, ~3 s per decompile). Turn it off if that bothers you and your databases guard their own startup, which is the cleaner fix and belongs in the database:
If Not Application.UserControl Then
Exit Function
End If
Application.UserControl is False when Access was started via COM, so the database opts itself out under automation and needs no bypass at all. With the bypass off, AutomationSecurity and the dialog watchdog still apply — but an unguarded AutoExec macro object will run.
About exclusive opens (v0.7.55). Shared opens — the default, and what every version before this one did — cannot take a design lock. Attaching Data Macros via SaveAsText/LoadFromText, or anything routing through DoCmd.OpenTable acViewDesign, is refused for any table another Access session has open, one table at a time and without stopping the run: it finishes, reports success, and nothing changed. Turn the switch on and that becomes a single visible failure when the database is opened.
It is off by default because it is genuinely exclusive: the session holds the database between tool calls, so while the server is connected nobody else can open it. That is right for a build or a development machine and wrong for a shared front-end. access_close releases the database without stopping the server.
The switch also verifies the mode instead of trusting it. Access treats Exclusive:=True as a request: with the file already in use it opens it shared without a word, and when someone else holds it exclusively it raises nothing and leaves the session with no database at all. So the server checks the lock file before opening (refusing without touching the session), checks it again afterwards (closing the database if Access downgraded it), and names the sessions holding it in the error. A stale lock file left by a crashed Access is not mistaken for a live one. With the switch on the server also stops attaching to an already-running Access instance, which would hold the file shared.
When the switch is off, you still get told (v0.7.56). The default stays shared and nothing is refused, but if the database is already open in another Access session the server says so on the result of the call that opened it, naming the sessions holding it. Design work is what silently half-lands in that state, and the person most likely to point the server at a live front-end is the one least likely to know that. A database another process holds exclusively is also reported as a lock conflict now — Access refuses that open without an error and it used to be diagnosed as a broken AutoExec, which sent people hunting through startup code for a locking problem.
| Tool | Description |
|---|---|
access_list_references | List VBA project references with GUID, path, broken/built-in status |
access_manage_reference | Add (by GUID or file path) or remove a VBA reference — guards against removing built-in refs |
| Tool | Description |
|---|---|
access_find_usages | Search a name across VBA code, query SQL, and control properties (ControlSource, RecordSource, RowSource, SourceObject, DefaultValue, ValidationRule, LinkChildFields, LinkMasterFields) in one call |
1. access_get_code → export to text
2. (edit the text)
3. access_set_code → reimport — binary sections are restored automatically
MCP-Access 是一个强大的工具集,旨在赋予任何 AI Assistant 对 Microsoft Access 数据库的完全控制权。通过该项目,你可以直接使用自然语言来创建 Form、编写 VBA 代码、设计 Table、管理控件、运行 Query 以及构建 Relationship。它内置了 66 个功能工具,将原本复杂的 .accdb 操作转化为“对话式”体验,即使你不是 Access 专家,也能通过简单的指令完成复杂的数据库开发任务。
运行本项目需要满足以下环境要求:操作系统必须为 Windows(因为 COM automation 仅支持 Windows);需安装 Microsoft Access(版本需支持 VBE,建议 2010 及以上版本);开发环境需配置 Python 3.9+;此外,务必在 Access 的 Trust Center 中开启 "Trust access to the VBA project object model" 选项,以允许 AI 进行代码操作。
你可以通过 Python 包管理器快速安装。在终端中运行以下命令即可完成依赖安装:`pip install mcp pywin32`。该过程会自动配置 MCP 协议支持及 Windows COM 接口所需的 pywin32 库。
本项目提供了启动选项管理功能。通过 `access_list_startup_options` 工具,你可以查看当前 Access 的 14 项常用启动配置(如 AppTitle、StartupForm、AllowBypassKey 等)及其当前值,确保数据库的运行环境符合预期。
本项目提供了深度集成 VBA 的 API 能力。你可以使用 `access_list_references` 查看 VBA 项目中的所有 References 状态(包括 GUID、路径及是否损坏);使用 `access_manage_reference` 安全地添加或删除 VBA 引用,系统会自动防止误删内置的系统引用。此外,`access_find_usages` 工具支持在 VBA 代码、Query SQL 以及各类控件属性(如 ControlSource、RecordSource 等)中进行全局名称搜索。
针对 Form、Report 或 Module 等对象的完整替换,本项目提供了一套高效的工作流:首先使用 `access_get_code` 将对象代码导出为文本;随后在外部编辑器中进行编辑;最后通过 `access_set_code` 将修改后的文本重新导入。该流程会自动恢复二进制部分,确保对象结构的完整性。
高质量的MCP工具,易于使用
该工具未明确声明开源协议,商业使用前请联系原作者确认授权范围,避免侵权风险。
AI Skill Hub 为第三方内容聚合平台,本页面信息基于公开数据整理,不对工具功能和质量作任何法律背书。
建议在沙箱或测试环境中充分验证后,再部署至生产环境,并做好必要的安全评估。
AI Skill Hub 点评:MCP访问工具 的核心功能完整,质量优秀。对于Claude Desktop / Claude Code 用户来说,这是一个值得纳入个人工具库的选择。建议先在非生产环境试用,再逐步推广。
| 原始名称 | MCP-Access |
| 原始描述 | 开源MCP工具:MCP Server for editing VBA code and controls on an MS Access .ACCDB database via。⭐34 · Python |
| Topics | mcppythonvbams-access |
| GitHub | https://github.com/unmateria/MCP-Access |
| 语言 | Python |
收录时间:2026-06-06 · 更新时间:2026-06-06 · License:未公布 · AI Skill Hub 不对第三方内容的准确性作法律背书。
选择 Agent 类型,复制安装指令后粘贴到对应客户端