mcp-server-filemaker
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| FM_HOST | Yes | FileMaker Server URL with protocol, e.g. https://fms.example.com | |
| FM_DEBUG | No | true to log full tool arguments to stderr | false |
| FM_DATABASE | Yes | Database name | |
| FM_PASSWORD | Yes | Password | |
| FM_USERNAME | Yes | API user (needs Extended Privilege fmodata) | |
| FM_TIMEOUT_MS | No | HTTP request timeout in milliseconds, default 15000 | 15000 |
| FM_RETRY_COUNT | No | Retry attempts on transient failures, default 2 | 2 |
| FM_ODATA_VERSION | No | OData version, default v4 | v4 |
| FM_DISABLED_TOOLS | No | Comma-separated tool names to disable |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| fm_get_metadataB | Reads the full OData $metadata document of the FileMaker database (EDMX/XML). Contains all tables, fields, types, and relationships. |
| fm_get_service_documentA | Lists all available EntitySets (tables/layouts) of the FileMaker database. |
| fm_queryA | Query records from a FileMaker table. Supports OData $filter, $select, $top, $skip, $orderby, $expand, $count. Default limit: 100 records (override with $top). |
| fm_get_recordB | Read a single FileMaker record by ROWID. |
| fm_create_recordC | Create a new record in a FileMaker table. |
| fm_update_recordC | Update an existing FileMaker record by ROWID (PATCH). |
| fm_delete_recordC | Delete a FileMaker record by ROWID. |
| fm_run_scriptC | Run a FileMaker script. Returns scriptResult with code and resultParameter. |
| fm_create_tableB | Create a new table in the FileMaker database (schema modification via OData). |
| fm_add_fieldC | Add a new field to an existing FileMaker table. SQL-style field types: VARCHAR(n), INT, NUMERIC, DATE, TIME, TIMESTAMP, BLOB. |
| fm_batchA | Execute multiple OData GET requests in a single HTTP call (batch). Use individual tools for write operations. |
| fm_create_test_recordA | Creates a test record with a test tag. tagField must be an existing text field in the FM table. Returns ROWID for later validation and cleanup. |
| fm_cleanup_test_dataB | Deletes all test records marked with a specific tag. tagField must be an existing text field in the FM table. |
| fm_assert_recordA | Validates that a FileMaker record contains the expected field values. Returns PASS/FAIL with diff. |
| fm_assert_countB | Checks whether a query returns the expected number of records. Useful for validating script results. |
| fm_run_script_and_assertB | Runs a FileMaker script and checks whether the result code matches the expected value. |
| fm_introspectA | Analyzes the database structure: lists tables or shows all fields of a table with native FM field types from $metadata. |
| fm_set_globalsA | Sets global fields via FileMaker Data API (not OData). Opens a Data API session, sets the globals, then closes the session. Keys must be fully qualified: 'Table::FieldName_g'. |
| fm_run_script_with_globalsA | Sets global fields and runs a script in the SAME Data API session. This makes scripts that depend on global fields for context work (e.g. SESSIONS::UUID_g). Flow: Login → Set Globals → Run Script → Logout. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 19 tools
Each tool serves a distinct purpose: CRUD, metadata, query, testing, scripting, schema, batch. Overlaps are intentional (e.g., create_record vs create_test_record). No ambiguity between tools.
All tools follow a consistent 'fm_verb_noun' pattern. Verbs are clear and standardized (create, get, update, delete, assert, run, set, add, cleanup, introspect). Minor deviations like 'batch' are still effective.
19 tools is slightly above the typical 3-15 range, but each tool addresses a specific aspect of FileMaker interaction (CRUD, schema, testing, scripting, metadata). The count feels earned and not excessive.
Core operations are well-covered: CRUD, query, metadata, scripting, testing. Minor gaps include lack of schema modification beyond adding fields (e.g., no delete table/field) and no tool for file uploads, but these are non-essential.