MCP Access
UnclaimedMCP Server for editing VBA code and controls on an MS Access .ACCDB database via LLM (tested just with Claude Code)
Install
claude mcp add access -- python C:\path\to\access_mcp_server.pySet up this server
More in Databases
Browse the full directoryUnclaimed listing
Is this your MCP server?
This listing was auto-indexed from the public record. Claim it to edit the page, set compatibility and unlock growth tools. Takes under two minutes.
Claim this serverSecurity profile
Claimed and verified servers get a weekly static scan that shows what the code can reach: external services, environment variables, shell commands, agent configuration folders, plus any dependencies with known advisories. Claim this listing to get one. How the security profile works
40 of 40 tools
Documented tools (40)
From project documentation. A server handshake does not verify each tool’s description or behavior.
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
Tool change history
FAQ
Questions about MCP Access MCP Server
- How do I connect MCP Access MCP Server to Claude?
- The listing records `claude mcp add access -- python C:\path\to\access_mcp_server.py` as its setup step. Run it, then follow the repository's instructions for the client configuration; the listing names Claude Code, Cursor, Windsurf as compatible clients.
- Is MCP Access MCP Server free?
- MCPVault has not verified a licence for this server. Check the upstream terms and pricing before use; connected APIs may require a paid account.
- What can MCP Access MCP Server do?
- MCP Access MCP Server documents 40 tools to the agent, including access_alter_table, access_close, access_create_control. The descriptions above come from project documentation. A live handshake does not test individual tool behavior.