Claude FileMaker MCP Server
by ayushshah31
README.md
# Claude FileMaker MCP Server
An MCP server that connects Claude to FileMaker databases via the Data API. Query records, explore layouts, run scripts, and manage data using natural language.
## Features
- Query, create, update, and delete records
- Explore database layouts and field definitions
- Run FileMaker scripts with parameters
- Multi-database support
- Session caching for performance
- Self-signed SSL certificate support
## Quick Install (Claude Code CLI)
One command to add the FileMaker server to all your Claude Code projects:
```bash
claude mcp add -s user \
filemaker \
"npx -y github:ayushshah31/Claude-Filemaker-Mcp" \
-e FM_PROTOCOL=https \
-e FM_API_VERSION=v1 \
-e FM_SSL_VERIFY=false \
-e NODE_TLS_REJECT_UNAUTHORIZED=0 \
-e FM_SERVER_MYDB=your-filemaker-server.com \
-e FM_DATABASE_MYDB=YourDatabase \
-e FM_ACCOUNT_MYDB=your_username \
-e FM_PASSWORD_MYDB=your_password
```
Replace the `MYDB` suffix and values with your own. The suffix is a database identifier -- it can be anything, but must match across all four env vars (`FM_SERVER_`, `FM_DATABASE_`, `FM_ACCOUNT_`, `FM_PASSWORD_`).
Then restart Claude Code. Run `/mcp` inside a session to verify the server is connected.
## Manual Install (from source)
### Prerequisites
- [Node.js](https://nodejs.org/) 18 or higher
- FileMaker Server with Data API enabled
- A FileMaker account with the `fmrest` extended privilege enabled
### Step 1: Clone and install
```bash
git clone https://github.com/ayushshah31/Claude-Filemaker-Mcp.git
cd Claude-Filemaker-Mcp
npm install
```
### Step 2: Register the server
**Claude Code (CLI) -- works on Linux, macOS, and Windows:**
```bash
claude mcp add -s user \
filemaker \
"node /absolute/path/to/Claude-Filemaker-Mcp/server.js" \
-e FM_PROTOCOL=https \
-e FM_API_VERSION=v1 \
-e FM_SSL_VERIFY=false \
-e NODE_TLS_REJECT_UNAUTHORIZED=0 \
-e FM_SERVER_MYDB=your-filemaker-server.com \
-e FM_DATABASE_MYDB=YourDatabase \
-e FM_ACCOUNT_MYDB=your_username \
-e FM_PASSWORD_MYDB=your_password
```
**Claude Desktop:**
Go to **Settings > Developers > Edit Config** to open `claude_desktop_config.json` and add:
```json
{
"mcpServers": {
"filemaker": {
"command": "node",
"args": ["/absolute/path/to/Claude-Filemaker-Mcp/server.js"],
"env": {
"FM_PROTOCOL": "https",
"FM_API_VERSION": "v1",
"FM_SSL_VERIFY": "false",
"NODE_TLS_REJECT_UNAUTHORIZED": "0",
"FM_SERVER_MYDB": "your-filemaker-server.com",
"FM_DATABASE_MYDB": "YourDatabase",
"FM_ACCOUNT_MYDB": "your_username",
"FM_PASSWORD_MYDB": "your_password"
}
}
}
}
```
> **Windows users:** Use backslashes in the path, e.g. `"C:\\Users\\you\\Claude-Filemaker-Mcp\\server.js"`
### Step 3: Restart and test
Restart Claude Code or Claude Desktop, then try:
- "What layouts are available in my FileMaker database?"
- "Show me the first 10 records from PatientList"
- "What scripts are available?"
## Multiple Databases
Add more databases by using different suffixes in your env vars:
```
FM_SERVER_PROD=prod-server.com
FM_DATABASE_PROD=Production
FM_ACCOUNT_PROD=api_user
FM_PASSWORD_PROD=prod_password
FM_SERVER_DEV=dev-server.com
FM_DATABASE_DEV=Development
FM_ACCOUNT_DEV=dev_user
FM_PASSWORD_DEV=dev_password
```
## Available Tools
| Tool | Description |
|------|-------------|
| `fm_list_databases` | List all configured databases |
| `fm_test_connection` | Test connection to a database |
| `fm_get_metadata` | Get all layouts in a database |
| `fm_get_layout_metadata` | Get fields and details for a specific layout |
| `fm_query_records` | Query records with filtering, sorting, and pagination |
| `fm_create_record` | Create a new record |
| `fm_update_record` | Update an existing record |
| `fm_delete_record` | Delete a record |
| `fm_get_scripts` | List all available scripts |
| `fm_run_script` | Execute a FileMaker script with optional parameters |
| `fm_clear_cache` | Clear data, session, or all caches |
## SSL Configuration
| Setting | Description |
|---------|-------------|
| `FM_SSL_VERIFY=false` + `NODE_TLS_REJECT_UNAUTHORIZED=0` | Accept self-signed certificates (development) |
| `FM_SSL_VERIFY=true` + `NODE_TLS_REJECT_UNAUTHORIZED=1` | Require valid certificates (production) |
## Troubleshooting
**Tools show up but return empty results**
- Make sure `NODE_TLS_REJECT_UNAUTHORIZED=0` is set if using a self-signed certificate
- Verify the FileMaker account has the `fmrest` extended privilege enabled
**"No valid FileMaker database configurations found"**
- Check that all four env vars (`FM_SERVER_`, `FM_DATABASE_`, `FM_ACCOUNT_`, `FM_PASSWORD_`) use the same suffix
- Make sure the values are not empty
**Connection test works but data calls fail**
- Clear the cache: ask Claude to "clear the FileMaker cache"
- Restart Claude Code / Claude Desktop
**Server not showing in `/mcp`**
- Run `claude mcp list` to check registration
- Verify the path to `server.js` is absolute
- Make sure `npm install` completed successfully
- Check that Node.js 18+ is installed: `node --version`
## FileMaker Server Requirements
Your FileMaker Server account needs:
- **Data API access** enabled on the server
- An account with the **`fmrest`** extended privilege
- Appropriate privilege set for the operations you need (read-only for queries, full access for create/update/delete)
## License
MIT
This server cannot be deployed
Maintenance
ActivityInactive
ResponsivenessNo issues