Skip to main content
Glama
ayushshah31

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