
Microsoft Access Database
io.github.unmateria由 GitHub 帳號 unmateria 發布v0.7.65更新於 Oct 31, 2026
Read and edit Microsoft Access databases (.accdb/.mdb) - forms, VBA, tables, queries. Windows.
發布方自己的服務:Microsoft Learn MCP
概覽
讓 AI 助理在 Windows 上讀取與編輯 Microsoft Access 資料庫:表單、控制項、VBA、資料表、查詢、關聯與報表。
- 可以做什麼
- 建立、列出、匯出、匯入與刪除表單、報表、模組、查詢、巨集等資料庫物件
- 執行 SQL 與批次語句,建立或修改資料表,檢視欄位、索引與關聯
- 依行或依程序讀取、搜尋、修補與取代 VBA 程式碼,並進行語法檢查與編譯
- 建立、修改與刪除表單及報表控制項,設定屬性,並檢查版面中的明顯缺陷
- 將報表匯出為 PDF、XLSX、RTF,與 Excel 或 CSV 互傳資料,壓縮與修復資料庫
- 擷取 Access 視窗畫面,並透過點擊或輸入進行介面自動化
- 適用情境
- 適合在 Windows 上維護舊版 Access 應用程式時使用:讓助理檢查、重構或擴充資料庫,例如編輯 VBA、建立表單與控制項、調整資料表與查詢、產生結構文件。不適用於非 Windows 環境,也不適用於來源不可信的資料庫。
- 執行需求
- 以本機 stdio 程序執行,僅支援 Windows。需要安裝 Microsoft Access 2010 或更新版本、Python 3.10+ 及 pywin32 與 pillow,並在信任中心啟用對 VBA 專案物件模型的存取。選用環境變數 MCP_ACCESS_ALLOW_CODE_EXEC、MCP_ACCESS_SHIFT_BYPASS 與 MCP_ACCESS_EXCLUSIVE 可改變行為。
安裝
在 SourceWeft 中
- 開啟 儀表板中的 Microsoft Access Database,將其新增到工作區。
- 為需要使用其工具的對話啟用該服務。
Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。
其他 MCP 客戶端
參照 儲存庫 中的啟動說明。
README
mcp-access
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. 69 tools that turn Access into something you can talk to.
No Access expertise required. Just describe what you want.
The AI handles the COM automation, design view, VBA modules, binary sections, cache invalidation, and all the ugly parts. You get the result.
What it can do
- Forms & Reports — create, clone, export, import, screenshot, click, type. Full UI automation loop
- VBA — read, write, replace, compile, and run procedures. Line-level or full-proc editing
- Controls — create, delete, modify, list, set tab order. Finds controls nested inside TabControl pages
- Tables & SQL — create via DAO, alter, query, batch execute, full-text search across every Text/Memo field. Linked ODBC tables supported
- Relationships, indexes, references, queries, macros — full CRUD. Clone any object (form / report / module / class / query / macro) preserving VBA and binary sections
- Maintenance — compact & repair, decompile bloated databases, export structure docs. Office install autodetected (no more hardcoded Office 16 paths)
- UI lint —
access_lint_formflags objectively broken layouts (white-on-white text, overlaps, truncation, off-canvas controls). A checker, not a designer — see the note below
Works with Claude Code, Cursor, Windsurf, Continue, or any MCP-compatible client.
Requirements
- Windows (COM automation is Windows-only)
- Microsoft Access installed (any version that supports VBE, 2010+)
- Python 3.10+
- "Trust access to the VBA project object model" enabled in Access Trust Center
Installation
Enable VBA object model access
File → Options → Trust Center → Trust Center Settings → Macro Settings
→ check Trust access to the VBA project object model
Or run the included PowerShell script:
Register with Claude Code
Global (available in all projects):
Project-only (creates .mcp.json in current directory):
Register with other MCP clients
Add to your MCP config file (.mcp.json, mcp.json, or client-specific settings):
Compatible with any MCP-compliant client (Cursor, Windsurf, Continue, etc.).
Tools (69)
Database
Database objects
SQL & tables
VBE line-level editing
Form & report controls
⚠️ A note on
access_lint_form— manage your expectationsThis is NOT a designer and there is zero super-design here. Don't expect it to make a form look good, suggest a nice palette, or have any taste — it has none and never will.
It is a dumb, deterministic verifier of the obvious, easy-to-check stuff: is the text the same colour as its background? do two controls physically overlap? does a caption not fit its box? is something off the edge of the form, or zero pixels tall? That's it. Plain math — WCAG contrast ratios and rectangle intersection — with a pile of false-positive guards so it doesn't cry wolf.
Think seatbelt, not stylist: it won't make the car pretty, it just stops you shipping a form with white text on a white background without noticing. It runs automatically on every control edit so those obvious mistakes surface on their own. If you were hoping for a UI-design AI, this isn't it (honest PRs to make it smarter are very welcome 😄).
Text export/import
Database properties
Linked tables
Relationships
VBA References
Maintenance
Query management
Indexes
VBA Compilation
VBA & macro execution
⚠️ Disabled by default (v0.7.51). These three tools run arbitrary code and are gated behind the
MCP_ACCESS_ALLOW_CODE_EXECenvironment variable. See Security to enable them.
Export
Data transfer
Field properties
Startup options
Screenshot & UI automation
Cross-reference
Knowledge base
Typical workflows
Targeted VBA editing (recommended)
Full object replacement (forms, reports, modules)
Creating a new form
Screenshot & UI interaction
Security
This is a local stdio server with no network surface, so there is no login
by design — see SECURITY.md for the full threat model. The main
risk is prompt injection: an agent tricked (via db_path or content it reads
out of the database) into calling a code-execution tool.
Code execution is disabled by default (v0.7.51). The three tools that run
arbitrary VBA/Shell — access_run_vba, access_eval_vba, access_run_macro —
are hidden and rejected unless you opt in with an environment variable. To
re-enable, add it to this server's env in your MCP client config and restart:
Enabling grants arbitrary OS command execution; only point the server at trusted databases. See SECURITY.md for details and how to report issues.
Environment variables
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.
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:
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 disconnects the MCP session; an MCP-owned
Access instance is quit, while a user-owned instance and its database remain
open. If an MCP-owned instance does not exit within 10 seconds, the server
terminates that process as a last resort; it never force-terminates an
instance attached from the user's Access session.
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.
Notes
- Access runs visible (
Visible = True) so VBE COM access works correctly. - One Access instance is shared across all tool calls (singleton session). Opening a different
.accdbcloses the previous one. - COM thread isolation: All COM calls run in a dedicated single-thread executor (
_com_executor) withCoInitialize(). This keeps COM in one STA thread while the asyncio event loop stays free for stdio I/O, preventing-32602errors from message corruption. - Auto-reconnect: if the COM session becomes stale (Access crashed, closed manually, or COM corruption), the server detects it via a health check and reconnects automatically on the next tool call.
access_get_codestrips binary sections (PrtMip,PrtDevMode, etc.) from form/report exports —access_set_coderestores them automatically before importing.- All VBE line numbers are 1-based.
Known limitations
- ActiveX controls (type 119 =
acCustomControl):access_create_controlnow accepts aclass_nameparameter with the ProgID (e.g.Shell.Explorer.2) to initialize the OLE control. For WebBrowser specifically, use type 128 (acWebBrowser) which creates a native control without OLE complexity. Settingctrl.Classfrom COM may not work for all ActiveX controls — manual insertion from the ribbon remains the most reliable method. access_run_vba: Now supports form module procedures viaForms.FormName.Methodsyntax (direct COM access, form must be open). Also supportstimeoutparameter — if exceeded, auto-dismisses MsgBox/InputBox dialogs. For more flexible form interaction, useaccess_eval_vba.- Timer events (
Form_Timer): Now fire duringaccess_screenshotwhenwait_ms > 0— the wait loop pumps Windows messages viapythoncom.PumpWaitingMessages(). Other tools still block the message pump. access_vbe_appendpreviously HTML-encoded&as&due to MCP transport escaping. Fixed in v0.7.3 with explicithtml.unescape()decoding.
Troubleshooting
Intermittent -32602 Invalid request parameters errors
The MCP Python SDK (v1.26.0) has a catch-all except Exception in mcp/shared/session.py that swallows real errors and returns a generic -32602 code with no detail. A local patch is applied to this machine that includes the actual exception and traceback in the error response. If you upgrade the mcp package, re-apply the patch — see CLAUDE.md for details.
Changelog
See CHANGELOG.md for the full release history.
來源:README.md,提交 3e0fe05
工具
0版本歷史
5- v0.7.65最新Oct 31, 2026
- v0.7.64Oct 8, 2026
- v0.7.63Sep 24, 2026
- v0.7.62Sep 21, 2026
- v0.7.59Sep 16, 2026
評分
已滿足適用檢查項的 40%
該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。
- 近 30 天內可連通25 分
請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。
- 已宣告認證方式10 分
請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。
- 已列出工具15 分
請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。
- 描述必需15 分
- 圖示10 分
- 文件15 分
- 授權條款10 分
請在儲存庫或註冊中心條目中宣告授權條款。
其他 Microsoft 整合

Microsoft Learn MCP
com.microsoft官方發布者
一個免費的遠端 MCP 伺服器,讓 AI 助理搜尋微軟官方 Learn 文件、尋找程式碼範例,並把文件頁面抓取為 markdown。

Playwright Cloud Browsers
com.microsoft官方發布者
遠端 MCP 伺服器,為 AI 代理提供受管理的 Playwright 雲端瀏覽器,可建立工作階段、瀏覽並檢視頁面、與頁面元素互動。

Microsoft Sentinel Data Exploration
com.microsoft官方發布者
遠端 Microsoft Sentinel MCP 伺服器,讓助理以自然語言尋找相關資料表,並從 Sentinel 資料湖擷取安全性資料。
Visio
com.microsoft
讓助理透過桌面自動化,在使用者的 Windows 電腦上建立、更新與讀取 Microsoft Visio 圖表。

Microsoft Clarity MCP
由 GitHub 帳號 surendranb 發布
本機 MCP 伺服器,把 Microsoft Clarity 的行為 UX 資料(暴怒點擊、無效點擊、快速返回、JS 錯誤)提供給 AI 助理分析。