Skip to main content
Glama
nietsneuah

filemaker-mcp

by nietsneuah
README.md
# filemaker-mcp

Connect Claude (or any MCP client) to a FileMaker database — read-only queries,
schema discovery, and pandas-powered analytics.

## What It Does

filemaker-mcp is an MCP server that gives AI assistants live access to your
FileMaker data via OData v4. Load it in Claude Desktop or Claude Code and ask
questions about your data in plain English.

**Tools provided:**
- `fm_query_records` — Search and filter records with OData expressions
- `fm_get_record` — Fetch a single record by primary key
- `fm_count_records` — Count records with optional filters
- `fm_list_tables` — List available tables
- `fm_get_schema` — Discover field names, types, and keys
- `fm_load_dataset` — Pull records into memory for analytics
- `fm_analyze` — Run groupby/sum/count/mean/min/max on loaded data
- `fm_list_datasets` — See what datasets are loaded

## Quick Start

### Prerequisites

- Python 3.12+
- [uv](https://docs.astral.sh/uv/) package manager
- FileMaker Server with OData v4 enabled
- An FM account with `fmodata` extended privilege

### Install

```bash
git clone https://github.com/nietsneuah/filemaker-mcp.git
cd filemaker-mcp
cp .env.example .env
# Edit .env with your FileMaker server details
uv sync
```

### Configure Claude Desktop

Add to your Claude Desktop MCP config
(`~/Library/Application Support/Claude/claude_desktop_config.json` on macOS):

```json
{
  "mcpServers": {
    "filemaker": {
      "command": "uv",
      "args": ["run", "--directory", "/path/to/filemaker-mcp", "filemaker-mcp"],
      "env": {
        "FM_HOST": "your-server.example.com",
        "FM_DATABASE": "your_database",
        "FM_USERNAME": "mcp_agent",
        "FM_PASSWORD": "your_password"
      }
    }
  }
}
```

### Run

```bash
uv run filemaker-mcp
```

## Schema Discovery

On startup, the server auto-discovers your tables from the OData service
document. For richer schema (field types, primary keys, tiers), install the
optional `GetTableDDL` FileMaker script — see `docs/FM_ACCOUNT_SETUP.md`.

## Analytics

For reports and summaries, use the analytics tools instead of raw queries:

1. `fm_load_dataset` — Fetch records into a pandas DataFrame (auto-paginates)
2. `fm_analyze` — Run aggregations instantly (no additional FM round trips)

This returns ~200 tokens instead of ~400K for raw records — much more efficient
for dashboards and trend analysis.

## Documentation

- [Architecture](docs/ARCHITECTURE.md) — System design and security model
- [FM Account Setup](docs/FM_ACCOUNT_SETUP.md) — FileMaker privilege configuration
- [Tool Reference](docs/TOOL_REFERENCE.md) — Detailed parameter docs

## License

GPL-3.0 — see [LICENSE](LICENSE)

## Author

Doug Hauenstein / [FM Rug Software](https://github.com/nietsneuah)

TDQS

A4.4/5.0

Scored across 13 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: querying records, fetching single records, counting, listing tables, fetching schema, loading datasets, analyzing, managing datasets, switching tenants, and managing context. No overlapping functionality.

Naming Consistency5/5

All tools follow the consistent 'fm_verb_noun' pattern (e.g., fm_query_records, fm_list_tables, fm_get_schema). The naming is uniform and predictable.

Tool Count5/5

13 tools is well-scoped for the server's purpose of querying, analyzing, and managing FileMaker data across tenants with context saving. Each tool earns its place.

Completeness3/5

The tool set covers read operations and analytics well, but lacks write capabilities (no create, update, or delete records). This is a notable gap for a database interaction server.

Maintenance

ActivityInactive
ResponsivenessNo issues