
Microsoft Access Database
Gives Claude full COM access to Microsoft Access databases on Windows. You get 66 tools covering forms, VBA modules, tables, queries, relationships, and controls. It can create forms programmatically, edit VBA at the line or procedure level through the VBE object model, run SQL via DAO, search across all queries at once, and handle controls nested inside TabControl pages. Includes a deterministic layout linter that catches objectively broken UI issues like white-on-white text, overlapping controls, and truncation using WCAG contrast checks and rectangle math. Requires Access installed and VBA project model trust enabled. Works with any MCP client over stdio.
- GitHub stars
- 61
- tools
- 58
- transport
- STDIO
- last updated
- Oct 31, 2026
Tools
58 toolsPublic tool metadata for what this MCP can expose to an agent.
access_create_databaseCreate a new empty `.accdb` database file
Create a new empty `.accdb` database file
No parameter schema in public metadata yet.
access_closeDisconnect MCP; leave user-owned Access open, quit only an MCP-created instance
Disconnect MCP; leave user-owned Access open, quit only an MCP-created instance
No parameter schema in public metadata yet.
access_list_objectsList objects by type (`table`, `module`, `form`, `report`, `query`, `macro`, `all`). System tables filtered
List objects by type (`table`, `module`, `form`, `report`, `query`, `macro`, `all`). System tables filtered
No parameter schema in public metadata yet.
access_get_codeExport an object's full definition as text
Export an object's full definition as text
No parameter schema in public metadata yet.
access_set_codeImport modified text back (creates or overwrites)
Import modified text back (creates or overwrites)
No parameter schema in public metadata yet.
access_export_structureGenerate a Markdown index of all modules, forms, reports, queries
Generate a Markdown index of all modules, forms, reports, queries
No parameter schema in public metadata yet.
access_delete_objectDelete a module, form, report, query, or macro. Requires `confirm=true`
Delete a module, form, report, query, or macro. Requires `confirm=true`
No parameter schema in public metadata yet.
access_create_formCreate a new form without triggering the "Save As" MsgBox that blocks COM. Optional `has_header` for header/footer section, `record_source` (bind to table/query), `default_view` (0=Single, 1=Continuous, 2=Datasheet, ...)
Create a new form without triggering the "Save As" MsgBox that blocks COM. Optional `has_header` for header/footer section, `record_source` (bind to table/query), `default_view` (0=Single, 1=Continuous, 2=Datasheet, ...)
No parameter schema in public metadata yet.
access_execute_sqlRun SQL via DAO — SELECT returns rows as JSON (`limit` default 500). DELETE/DROP/ALTER require `confirm_destructive=true`
Run SQL via DAO — SELECT returns rows as JSON (`limit` default 500). DELETE/DROP/ALTER require `confirm_destructive=true`
No parameter schema in public metadata yet.
access_execute_batchExecute multiple SQL statements in one call. Supports mixed SELECT/INSERT/UPDATE/DELETE with per-statement results, `stop_on_error`, and `confirm_destructive`
Execute multiple SQL statements in one call. Supports mixed SELECT/INSERT/UPDATE/DELETE with per-statement results, `stop_on_error`, and `confirm_destructive`
No parameter schema in public metadata yet.
access_table_infoShow table structure via DAO (fields, types, sizes, required, linked status)
Show table structure via DAO (fields, types, sizes, required, linked status)
No parameter schema in public metadata yet.
access_search_queriesSearch text in the SQL of ALL queries at once (find which queries reference a table, field, or keyword)
Search text in the SQL of ALL queries at once (find which queries reference a table, field, or keyword)
No parameter schema in public metadata yet.
access_create_tableCreate a table via DAO with full type, default, description and primary key support in one call. More robust than `CREATE TABLE` SQL
Create a table via DAO with full type, default, description and primary key support in one call. More robust than `CREATE TABLE` SQL
No parameter schema in public metadata yet.
access_alter_tableModify table structure via DAO: add field, delete field (requires `confirm=true`), rename field
Modify table structure via DAO: add field, delete field (requires `confirm=true`), rename field
No parameter schema in public metadata yet.
access_vbe_get_linesRead a line range from a VBA module without exporting the whole file
Read a line range from a VBA module without exporting the whole file
No parameter schema in public metadata yet.
access_vbe_get_procGet a procedure's code and position by name
Get a procedure's code and position by name
No parameter schema in public metadata yet.
access_vbe_module_infoList all procedures with their line numbers
List all procedures with their line numbers
No parameter schema in public metadata yet.
access_vbe_replace_linesReplace/insert/delete lines in a VBA module directly via VBE
Replace/insert/delete lines in a VBA module directly via VBE
No parameter schema in public metadata yet.
access_vbe_findSearch text in ONE specific module. A hit on a statement wrapped with ` _` also returns the whole joined statement
Search text in ONE specific module. A hit on a statement wrapped with ` _` also returns the whole joined statement
No parameter schema in public metadata yet.
access_vbe_search_allSearch text across ALL modules/forms/reports in the database at once. Optional `context_lines` (0-10) returns the surrounding code with each hit
Search text across ALL modules/forms/reports in the database at once. Optional `context_lines` (0-10) returns the surrounding code with each hit
No parameter schema in public metadata yet.
access_vbe_replace_procReplace a full procedure by name (auto-calculates line bounds). Strips misplaced `Option` lines, runs structural health check
Replace a full procedure by name (auto-calculates line bounds). Strips misplaced `Option` lines, runs structural health check
No parameter schema in public metadata yet.
access_vbe_patch_procSurgical find/replace within a procedure. Atomic by default, case-insensitive anchors, optional `require_unique`, whitespace-tolerant fallback matching
Surgical find/replace within a procedure. Atomic by default, case-insensitive anchors, optional `require_unique`, whitespace-tolerant fallback matching
No parameter schema in public metadata yet.
access_vbe_appendAppend code at the end of a module. Auto-strips `Option Explicit`/`Option Compare` to prevent misplacement
Append code at the end of a module. Auto-strips `Option Explicit`/`Option Compare` to prevent misplacement
No parameter schema in public metadata yet.
access_list_controlsList all controls of a form/report with key properties. Optional `fields` keeps only the keys you ask for
List all controls of a form/report with key properties. Optional `fields` keeps only the keys you ask for
No parameter schema in public metadata yet.
access_get_controlGet the full, unabridged definition block of a specific control
Get the full, unabridged definition block of a specific control
No parameter schema in public metadata yet.
access_search_controlsSearch text or regex in the control properties of every form/report
Search text or regex in the control properties of every form/report
No parameter schema in public metadata yet.
access_create_controlCreate a new control via COM in design view. Supports `class_name` for ActiveX (type 119) ProgID initialization
Create a new control via COM in design view. Supports `class_name` for ActiveX (type 119) ProgID initialization
No parameter schema in public metadata yet.
access_delete_controlDelete a control via COM
Delete a control via COM
No parameter schema in public metadata yet.
access_set_control_propsModify control properties via COM in design view
Modify control properties via COM in design view
No parameter schema in public metadata yet.
access_set_multiple_controlsModify properties of multiple controls in a single design-view session
Modify properties of multiple controls in a single design-view session
No parameter schema in public metadata yet.
access_lint_formDeterministic check for objectively-broken layout: contrast (WCAG), overlap, out-of-bounds, truncation, sibling inconsistency, zero-size/invisible. Returns `verdict` PASS/REVIEW/FAIL
Deterministic check for objectively-broken layout: contrast (WCAG), overlap, out-of-bounds, truncation, sibling inconsistency, zero-size/invisible. Returns `verdict` PASS/REVIEW/FAIL
No parameter schema in public metadata yet.
access_export_textExport form/report/module as text via SaveAsText. Does NOT open Design view. UTF-16 LE output
Export form/report/module as text via SaveAsText. Does NOT open Design view. UTF-16 LE output
No parameter schema in public metadata yet.
access_import_textImport form/report/module from text via LoadFromText. Replaces if exists. Auto-splits CodeBehindForm VBA
Import form/report/module from text via LoadFromText. Replaces if exists. Auto-splits CodeBehindForm VBA
No parameter schema in public metadata yet.
access_get_db_propertyRead a DB property (`CurrentDb.Properties`) or Access option (`GetOption`)
Read a DB property (`CurrentDb.Properties`) or Access option (`GetOption`)
No parameter schema in public metadata yet.
access_set_db_propertySet a DB property or Access option — creates the property if it doesn't exist
Set a DB property or Access option — creates the property if it doesn't exist
No parameter schema in public metadata yet.
access_get_form_propertyRead form or report properties (RecordSource, Caption, DefaultView, etc.). `object_type` required (`form` or `report`)
Read form or report properties (RecordSource, Caption, DefaultView, etc.). `object_type` required (`form` or `report`)
No parameter schema in public metadata yet.
access_set_form_propertySet form/report properties (RecordSource, Caption, DefaultView, HasModule, etc.) via COM in Design view
Set form/report properties (RecordSource, Caption, DefaultView, HasModule, etc.) via COM in Design view
No parameter schema in public metadata yet.
access_list_linked_tablesList linked tables with source table, connection string, ODBC flag. `names_only=true` is a light listing; `mask_password=true` masks `PWD=`
List linked tables with source table, connection string, ODBC flag. `names_only=true` is a light listing; `mask_password=true` masks `PWD=`
No parameter schema in public metadata yet.
access_relink_tableChange connection string and refresh link — auto-saves credentials when UID/PWD detected. `relink_all=true` updates all tables with the same original connection
Change connection string and refresh link — auto-saves credentials when UID/PWD detected. `relink_all=true` updates all tables with the same original connection
No parameter schema in public metadata yet.
access_list_relationshipsList table relationships with field mappings and cascade flags
List table relationships with field mappings and cascade flags
No parameter schema in public metadata yet.
access_create_relationshipCreate a relationship between two tables (supports cascade update/delete)
Create a relationship between two tables (supports cascade update/delete)
No parameter schema in public metadata yet.
access_delete_relationshipDelete a relationship by name
Delete a relationship by name
No parameter schema in public metadata yet.
access_list_referencesList VBA project references with GUID, path, broken/built-in status
List VBA project references with GUID, path, broken/built-in status
No parameter schema in public metadata yet.
access_manage_referenceAdd (by GUID or file path) or remove a VBA reference — guards against removing built-in refs
Add (by GUID or file path) or remove a VBA reference — guards against removing built-in refs
No parameter schema in public metadata yet.
access_compact_repairCompact & repair the database — closes, compacts to temp, swaps atomically, reopens
Compact & repair the database — closes, compacts to temp, swaps atomically, reopens
No parameter schema in public metadata yet.
access_decompile_compactRemove orphaned VBA p-code via `/decompile`, recompile, then compact
Remove orphaned VBA p-code via `/decompile`, recompile, then compact
No parameter schema in public metadata yet.
access_manage_queryCreate, modify, delete, rename, or read SQL of a QueryDef. Delete requires `confirm=true`
Create, modify, delete, rename, or read SQL of a QueryDef. Delete requires `confirm=true`
No parameter schema in public metadata yet.
access_list_indexesList indexes of a table with fields, primary, unique, foreign flags
List indexes of a table with fields, primary, unique, foreign flags
No parameter schema in public metadata yet.
access_manage_indexCreate or delete an index. Create requires fields list with optional sort order
Create or delete an index. Create requires fields list with optional sort order
No parameter schema in public metadata yet.
access_vbe_check_syntaxStatic structural check of the already-open VBA project — no decompile, nothing discarded. Not a compiler
Static structural check of the already-open VBA project — no decompile, nothing discarded. Not a compiler
No parameter schema in public metadata yet.
access_compile_vbaCompile and save all VBA modules. Optional `timeout` to auto-dismiss error MsgBox. Decompiles first and can discard unsaved VBA
Compile and save all VBA modules. Optional `timeout` to auto-dismiss error MsgBox. Decompiles first and can discard unsaved VBA
No parameter schema in public metadata yet.
access_run_macroExecute an Access macro by name
Execute an Access macro by name
No parameter schema in public metadata yet.
access_run_vbaExecute a VBA Sub/Function. Standard modules via `Application.Run`, form modules via `Forms.FormName.Method` syntax (COM)
Execute a VBA Sub/Function. Standard modules via `Application.Run`, form modules via `Forms.FormName.Method` syntax (COM)
No parameter schema in public metadata yet.
access_eval_vbaEvaluate a VBA expression via `Application.Eval`. Domain functions, VBA built-ins, open form properties, standard module functions
Evaluate a VBA expression via `Application.Eval`. Domain functions, VBA built-ins, open form properties, standard module functions
No parameter schema in public metadata yet.
access_output_reportExport a report to PDF, XLSX, RTF, or TXT via `DoCmd.OutputTo`
Export a report to PDF, XLSX, RTF, or TXT via `DoCmd.OutputTo`
No parameter schema in public metadata yet.
access_transfer_dataImport/export data between Access and Excel (`.xlsx`) or CSV
Import/export data between Access and Excel (`.xlsx`) or CSV
No parameter schema in public metadata yet.
access_get_field_propertiesRead all properties of a table field (DefaultValue, ValidationRule, Description, Format, etc.)
Read all properties of a table field (DefaultValue, ValidationRule, Description, Format, etc.)
No parameter schema in public metadata yet.
access_set_field_propertySet a field property — creates the property if it doesn't exist
Set a field property — creates the property if it doesn't exist
No parameter schema in public metadata yet.
Sponsors
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.
"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.
What it can do
Details
- Repository
- github.com/unmateria/mcp-access
- Category
- Databases
- Package
mcp-msaccess-database- Transport
- STDIO
- Registry
- MCP registry, active