MCP Access
未认领MCP Server for editing VBA code and controls on an MS Access .ACCDB database via LLM (tested just with Claude Code)
安装
claude mcp add access -- python C:\path\to\access_mcp_server.py工具(40 个)
access_alter_table
Modify table structure via DAO: add field, delete field (requires confirm=true), rename field
access_close
Close the COM session and release the .accdb file
access_create_control
Create a new control via COM in design view. Supports classname for ActiveX (type 119) ProgID initialization. Use type 128 (acWebBrowser) for native WebBrowser
access_create_database
Create a new empty .accdb database file
access_create_form
Create a new form without triggering the "Save As" MsgBox that blocks COM. Optional hasheader for header/footer section, recordsource (bind to table/query), defaultview (0=Single, 1=Continuous, 2=Datasheet, ...)
access_create_relationship
Create a relationship between two tables (supports cascade update/delete)
access_create_table
Create a table via DAO with full type, default, description and primary key support in one call. More robust than CREATE TABLE SQL
access_delete_control
Delete a control via COM
access_delete_object
Delete a module, form, report, query, or macro. Requires confirm=true
access_execute_batch
Execute multiple SQL statements in one call. Supports mixed SELECT/INSERT/UPDATE/DELETE with per-statement results, stoponerror, and confirmdestructive
access_execute_sql
Run SQL via DAO — SELECT returns rows as JSON (limit default 500). DELETE/DROP/ALTER require confirmdestructive=true
access_export_structure
Generate a Markdown index of all modules, forms, reports, queries
access_export_text
Export form/report/module as text via SaveAsText. Does NOT open Design view. UTF-16 LE output
access_get_code
Export an object's full definition as text
access_get_control
Get the full definition block of a specific control (finds controls inside Pages/OptionGroups)
access_get_db_property
Read a DB property (CurrentDb.Properties) or Access option (GetOption)
access_get_form_property
Read form or report properties (RecordSource, Caption, DefaultView, etc.). objecttype required (form or report). Omit propertynames for all
access_import_text
Import form/report/module from text via LoadFromText. Replaces if exists. Auto-splits CodeBehindForm VBA
access_lint_form
Deterministic check for objectively-broken layout: contrast (WCAG), overlap, out-of-bounds, truncation, sibling inconsistency, zero-size/invisible. Returns verdict PASS/REVIEW/FAIL. Also runs automatically on every control edit
access_list_controls
List all controls of a form/report with key properties. Controls inside Pages/OptionGroups include a parent field
access_list_linked_tables
List linked tables with source table, connection string, ODBC flag. name='X' returns one table; namesonly=true is a light listing (no connect strings — use it when hundreds of links overflow the result); maskpassword=true masks PWD=
access_list_objects
List objects by type (table, module, form, report, query, macro, all). System tables filtered
access_list_relationships
List table relationships with field mappings and cascade flags
access_relink_table
Change connection string and refresh link — auto-saves credentials (dbAttachSavePWD) when UID/PWD detected. relinkall=true updates all tables with the same original connection. refresh=true re-reads the schema using the table's own connect string (no newconnect, password never dumped)
access_search_queries
Search text in the SQL of ALL queries at once (find which queries reference a table, field, or keyword)
access_set_code
Import modified text back (creates or overwrites)
access_set_control_props
Modify control properties via COM in design view
access_set_db_property
Set a DB property or Access option — creates the property if it doesn't exist
access_set_form_property
Set form/report properties (RecordSource, Caption, DefaultView, HasModule, etc.) via COM in Design view
access_set_multiple_controls
Modify properties of multiple controls in a single design-view session
access_table_info
Show table structure via DAO (fields, types, sizes, required, linked status)
access_vbe_append
Append code at the end of a module. Auto-strips Option Explicit/Option Compare to prevent misplacement
access_vbe_find
Search text in ONE specific module. To search all modules at once, use accessvbesearchall
access_vbe_get_lines
Read a line range from a VBA module without exporting the whole file
access_vbe_get_proc
Get a procedure's code and position by name
access_vbe_module_info
List all procedures with their line numbers
access_vbe_patch_proc
Surgical find/replace within a procedure. Atomic by default (a failed patch writes nothing), case-insensitive anchors, optional requireunique, whitespace-tolerant fallback matching + contextual error messages when patches fail. procname='(Declarations)' targets the declarations section
access_vbe_replace_lines
Replace/insert/delete lines in a VBA module directly via VBE
access_vbe_replace_proc
Replace a full procedure by name (auto-calculates line bounds). Strips misplaced Option lines, runs structural health check
access_vbe_search_all
Search text across ALL modules/forms/reports in the database at once