Skip to main content
Glama
fsans

FileMaker Data API MCP Server

by fsans

FileMaker Data API MCP Server

A Model Context Protocol (MCP) server that provides AI agents with direct access to FileMaker databases through the FileMaker Data API. Compatible with Claude Desktop, Claude Code Console, Windsurf, Cursor, Cline, and other MCP-enabled AI assistants.

npm version License: MIT

What It Does

This MCP server acts as a bridge between AI agents and FileMaker databases, enabling natural language interactions with your FileMaker data and database structure:

Data Interaction

  • Query databases - Retrieve, search, and analyze FileMaker records

  • Manage records - Create, update, delete, and duplicate records through conversation

  • Execute scripts - Run FileMaker scripts with parameters

  • Upload files - Add files to container fields (including repetitions)

  • Set global fields - Manage FileMaker global fields programmatically

  • Multi-database support - Switch between different FileMaker databases dynamically

Database Introspection

  • Discover structure - AI agents can introspect database schemas, layouts, and field definitions

  • Understand relationships - Access portal and related table information

  • Architect solutions - Enable AI to design and implement FileMaker applications through natural language

  • Metadata access - Get complete information about layouts, fields, value lists, and scripts

This introspection capability allows AI agents to understand your database architecture and help you build, modify, and optimize FileMaker solutions through simple conversation.

Related MCP server: MCP-Claude-FileMaker

Quick Start

Installation

npm install -g filemaker-data-api-mcp

Setup

# Add your FileMaker connection
filemaker-mcp config add-connection production \
  --server 192.168.0.24 \
  --database Sales \
  --user admin \
  --password your_password

# Set as default
filemaker-mcp config set-default production

Configure Your AI Agent

Claude Desktop

Edit your configuration file:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

  • Windows: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "filemaker": {
      "command": "filemaker-mcp",
      "args": ["start"]
    }
  }
}

Windsurf / Cursor / Cline

Add to your MCP settings configuration:

{
  "mcpServers": {
    "filemaker": {
      "command": "filemaker-mcp",
      "args": ["start"]
    }
  }
}

Restart your AI agent and you're ready!

Features

Connection Management

  • Multiple connections - Store and switch between different FileMaker databases

  • Dynamic switching - Change databases during conversations

  • Inline credentials - Connect with ad-hoc credentials without pre-configuration

  • Secure storage - Credentials stored with restricted file permissions

Data Operations

  • Authentication - Login, logout, session validation

  • Records - Create, read, update, delete, duplicate, find

  • Metadata - Access database, layout, and script information

  • Container fields - Upload files (including repetitions)

  • Global fields - Set global field values

  • Scripts - Execute FileMaker scripts with parameters

  • Portal data - Access related records through portals

Network Transport

  • stdio - Local use with Claude Desktop (default)

  • HTTP/HTTPS - Network deployment for remote access

Usage Examples

Example 1: Query Your Database

You ask:

"Show me all contacts from the production database"

The AI agent automatically connects and retrieves the data.

Example 2: Database Introspection

You ask:

"What is the structure of the Contacts layout? Show me all fields and their types."

The AI agent introspects the database schema and provides detailed field information.

Example 3: Switch Between Databases

You ask:

"Compare sales records from production and staging databases"

The AI agent switches between connections and compares the data.

Example 4: Create Records

You ask:

"Add a new contact: John Smith, john@example.com, 555-1234"

The AI agent creates the record with the provided information.

Example 5: Ad-hoc Connection

You ask:

"Connect to 192.168.0.26, database TestDB, user admin, password test123. Show all records."

The AI agent connects with inline credentials and queries the database.

Example 6: Solution Architecture

You ask:

"Design a customer management system with contacts, orders, and products. Create the layouts and suggest field definitions."

The AI agent uses database introspection to understand your current structure and helps architect the solution.

Configuration

CLI Commands

# Initial setup
filemaker-mcp setup

# Connection management
filemaker-mcp config add-connection <name> [options]
filemaker-mcp config remove-connection <name>
filemaker-mcp config list-connections
filemaker-mcp config set-default <name>
filemaker-mcp config show

# Start server
filemaker-mcp start

# Configure Claude Desktop
filemaker-mcp configure-claude

Environment Variables

You can also configure via environment variables in the Claude Desktop config:

{
  "mcpServers": {
    "filemaker": {
      "command": "filemaker-mcp",
      "args": ["start"],
      "env": {
        "FM_SERVER": "192.168.0.24",
        "FM_DATABASE": "Sales",
        "FM_USER": "admin",
        "FM_PASSWORD": "your_password",
        "FM_VERSION": "vLatest"
      }
    }
  }
}

Configuration Priority

  1. Environment variables (highest) - defined in MCP config

  2. CLI-configured connections - stored in ~/.filemaker-mcp/config.json

  3. Inline credentials (lowest) - passed dynamically via tool parameters

Available Tools

The MCP server provides 28 tools for interacting with FileMaker:

Authentication (3 tools)

  • fm_login - Authenticate with FileMaker Server

  • fm_logout - End session

  • fm_validate_session - Check session validity

Metadata (5 tools)

  • fm_get_product_info - Get FileMaker Server info

  • fm_get_databases - List available databases

  • fm_get_layouts - Get layouts for a database

  • fm_get_scripts - Get scripts for a database

  • fm_get_layout_metadata - Get layout field metadata

Records (7 tools)

  • fm_get_records - Get records with pagination

  • fm_get_record_by_id - Get single record

  • fm_create_record - Create new record

  • fm_edit_record - Update existing record

  • fm_delete_record - Delete record

  • fm_duplicate_record - Duplicate record

  • fm_find_records - Search records

Container Fields (2 tools)

  • fm_upload_to_container - Upload file to container field

  • fm_upload_to_container_repetition - Upload to repeating container field

Global Fields (1 tool)

  • fm_set_global_fields - Set global field values

Scripts (1 tool)

  • fm_execute_script - Execute FileMaker script

Configuration Tools (5 tools)

  • fm_config_add_connection - Add predefined connection

  • fm_config_remove_connection - Remove connection

  • fm_config_list_connections - List all configured connections

  • fm_config_get_connection - Get connection details (password masked)

  • fm_config_set_default_connection - Set default connection

Connection Tools (4 tools)

  • fm_set_connection - Switch to predefined connection

  • fm_connect - Connect with inline credentials (one-time)

  • fm_list_connections - List available connections

  • fm_get_current_connection - Show current connection details

Prerequisites

  • Node.js v18 or higher

  • FileMaker Server with Data API enabled

  • Valid FileMaker credentials with appropriate privileges

Documentation

Security

  • Credentials stored in ~/.filemaker-mcp/config.json with restricted permissions (0o600)

  • Passwords masked in list/show commands

  • Never share your config file or commit it to version control

  • Use strong passwords for FileMaker Server accounts

  • For production, consider using environment variables

Troubleshooting

Connection Issues

# List your connections
filemaker-mcp config list-connections

# Verify connection details
filemaker-mcp config show

Claude Desktop Not Responding

  1. Verify installation: filemaker-mcp config list-connections

  2. Rebuild if needed: npm install -g filemaker-data-api-mcp@latest

  3. Restart Claude Desktop

Authentication Failed

  • Verify FileMaker Server is running and accessible

  • Check username and password are correct

  • Ensure Data API is enabled on FileMaker Server

  • Verify user has proper privileges

Development

Local Development

# Clone repository (update URL after publishing)
git clone https://github.com/yourusername/filemaker-data-api-mcp.git
cd filemaker-data-api-mcp

# Install dependencies
npm install

# Build
npm run build

# Run tests
npm test

# Start in development mode
npm run dev

Use as Library

import { ConnectionManager } from 'filemaker-data-api-mcp';

const manager = new ConnectionManager();
manager.addConnection('mydb', {
  server: '192.168.0.24',
  database: 'Sales',
  user: 'admin',
  password: 'xxx',
  version: 'vLatest'
});

Contributing

Contributions are welcome! See the Development Guide for implementation details and the Testing Guide for testing guidelines.

License

MIT License - see LICENSE file for details

Resources

Support

  • Documentation: docs/

  • Changelog: CHANGELOG.md

  • Issues: GitHub Issues (update URL after publishing)


Made with ❤️ for the FileMaker and AI community

Available Tools

28 tools
fm_config_add_connectionB

Add a new predefined FileMaker database connection to the configuration

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesConnection name (e.g., 'production', 'staging', 'dev')
userYesFileMaker username
serverYesFileMaker Server IP address or hostname (without https://)
versionNoFileMaker Data API version (default: vLatest)
databaseYesFileMaker database name
passwordYesFileMaker password

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided. Description does not disclose side effects (e.g., overwriting existing connection), required privileges, or connection validation behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single, clear sentence. Could include more context without losing conciseness, but not overly verbose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Critical operation with 6 parameters and no output schema; description lacks information on duplicate handling, validation, or what 'configuration' entails. Incomplete for effective use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema covers 100% of parameters with descriptions. Description adds no additional meaning beyond the schema (e.g., uniqueness of name, default version).

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states action 'add' and resource 'predefined FileMaker database connection to configuration'. Differentiates from sibling tools like remove, list, get, set_default, and fm_connect.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives (e.g., fm_connect or fm_set_connection) or any prerequisites or constraints.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

fm_config_get_connectionB

Get details of a specific connection (password is masked for security)

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesConnection name

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden. It only mentions password masking but omits important traits like whether it's read-only, requires authentication, or error handling for nonexistent connections.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, front-loaded with the action, efficient and no wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple getter with one param, the description is minimally adequate but lacks return value hints or error conditions, which would be helpful given no output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description adds no extra meaning beyond the schema for the 'name' parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description specifies 'Get details of a specific connection' with a unique feature 'password is masked for security', clearly distinguishing it from siblings like fm_list_connections or fm_get_current_connection.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool vs alternatives. The description does not mention use cases, prerequisites, or when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

fm_config_list_connectionsB

List all available predefined database connections

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided; description only says 'list' implying read-only, but does not disclose authentication requirements, potential rate limits, or whether the list is cached or real-time. Minimal behavioral info.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, front-loaded with verb and resource, no unnecessary words. Efficient and scannable.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Simple tool with no parameters or output schema; description is adequate for its purpose but could mention what information is returned (e.g., connection names, IDs) to aid agent understanding.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters exist, and schema coverage is 100%. Description adds no parameter info, but baseline for zero-parameter tools is 4 as per scoring guidelines.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the tool lists all predefined database connections, with specific verb 'list' and resource 'connections'. Some ambiguity remains about sibling 'fm_list_connections' which may be similar, but distinguishes from mutate operations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool vs siblings like 'fm_list_connections' or 'fm_get_current_connection'. No context about prerequisites or typical use cases.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

fm_config_remove_connectionB

Remove a predefined database connection from the configuration

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesConnection name to remove

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. It only states the operation but doesn't disclose whether it is destructive, requires permissions, or affects other connections. Minimal behavioral disclosure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, no redundancy. Every word is necessary and front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple single-parameter removal tool, the description is adequate but lacks usage context and behavioral caveats. Without annotations, it could be more complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with a clear parameter description. The tool description adds no additional meaning beyond the schema, leading to a baseline score of 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (remove), the resource (predefined database connection), and scope (from configuration). It differentiates from sibling tools like fm_config_add_connection and fm_config_list_connections by specifying removal.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives like fm_connect or fm_delete_record. No prerequisites or context for removal are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

fm_config_set_default_connectionA

Set the default connection to use when the server starts

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesConnection name to set as default

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden for behavioral disclosure. It states the outcome (set default connection for server start) but does not disclose idempotency, persistence details, error behavior (e.g., if the name doesn't exist), or whether it overrides existing defaults. Minimal transparency beyond the core action.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence that directly states the tool's purpose. No extraneous words or repetition. Highly efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (1 parameter, no output schema), the description is minimally adequate. However, it omits important context such as whether the connection must already exist in configuration and how this interacts with sibling tools like 'fm_config_add_connection'. A complete description would include such prerequisites.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% coverage with one parameter 'name' described as 'Connection name to set as default'. The description adds no additional semantics beyond the schema. Baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Set the default connection') and the context ('when the server starts'). It uses a specific verb-resource pair and distinguishes from sibling tools like 'fm_config_add_connection' (adds a new connection) and 'fm_set_connection' (likely sets the current active connection).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description does not provide explicit guidance on when to use this tool versus alternatives (e.g., 'fm_set_connection' for temporary changes). It implies usage for persistent default configuration but lacks exclusions or prerequisites such as requiring the connection to already exist via 'fm_config_add_connection'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

fm_connectB

Connect to a FileMaker database with inline credentials (one-time connection)

ParametersJSON Schema
NameRequiredDescriptionDefault
userYesFileMaker username
serverYesFileMaker Server IP address or hostname (without https://)
versionNoFileMaker Data API version (default: vLatest)
databaseYesFileMaker database name
passwordYesFileMaker password

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided; the description only mentions 'inline credentials' and 'one-time connection', hinting at a security consideration but failing to disclose other behaviors (e.g., session establishment, error handling, network requirements).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, no fluff, and front-loaded with the core action. Every word adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite many sibling tools and no output schema, the description fails to explain how this connection fits into the overall workflow (e.g., whether it establishes a session reusable by other tools). Context is insufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with basic descriptions for each parameter. The tool description adds no additional meaning beyond the schema, resulting in a baseline score of 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Connect') and the resource ('FileMaker database') with specific qualifiers ('inline credentials', 'one-time connection'), distinguishing it from session-based or config-based sibling tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives like fm_login or fm_set_connection. The description implies a one-time connection but does not explicitly state usage context or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

fm_create_recordB

Create a new record in a layout

ParametersJSON Schema
NameRequiredDescriptionDefault
layoutYesLayout name
databaseNoDatabase name (optional, uses default from session if not provided)
fieldDataYesField data as key-value pairs (e.g., {"FirstName": "John", "LastName": "Doe"})

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full responsibility for behavioral disclosure. It only states the core function, omitting any details about side effects, permissions, auto-enter calculations, or commit behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence with no fluff, achieving high conciseness. However, it lacks structural elements like separate sections or bullet points that could improve readability without adding length.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's moderate complexity (3 parameters, nested object, no output schema), the description is severely incomplete. It does not explain return values, error conditions, or prerequisites for successful record creation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description adds no additional meaning beyond the schema's parameter descriptions (e.g., layout name, optional database, fieldData as key-value pairs).

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Create a new record in a layout' uses a specific verb (Create) and resource (new record), clearly distinguishing it from sibling tools like fm_edit_record or fm_delete_record.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives (e.g., fm_edit_record, fm_duplicate_record), and lacks any context about prerequisites or ideal scenarios.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

fm_delete_recordC

Delete a record by its recordId

ParametersJSON Schema
NameRequiredDescriptionDefault
layoutYesLayout name
databaseNoDatabase name (optional, uses default from session if not provided)
recordIdYesRecord ID

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description bears full responsibility for behavioral disclosure. It only states 'Delete a record', with no mention of side effects, permissions required, whether the deletion is irreversible, or what happens to related data. This is insufficient for a mutation operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise at one sentence, with no waste. However, it is so minimal that it sacrifices informativeness. Balance is acceptable, but could be slightly more detailed without losing conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the lack of output schema and annotations, the description should provide more context about the operation's results, error handling, or side effects. It fails to do so, making it incomplete for a tool with three parameters and a mutation action.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage for its three parameters (layout, database, recordId), so the schema already explains each parameter adequately. The description adds no additional value beyond what the schema provides, leading to a baseline score of 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (delete) and the resource (record) with the key identifier (recordId). It is not a tautology and distinguishes this tool from sibling tools like fm_create_record or fm_edit_record. However, it could be more specific about the scope, e.g., whether the deletion is permanent.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives such as fm_edit_record or fm_duplicate_record. There are no prerequisites, exclusions, or context indicating appropriate use cases.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

fm_duplicate_recordC

Duplicate an existing record

ParametersJSON Schema
NameRequiredDescriptionDefault
layoutYesLayout name
databaseNoDatabase name (optional, uses default from session if not provided)
recordIdYesRecord ID

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden for behavioral disclosure. It fails to mention key traits such as whether the duplicate is created in the same layout, what happens to record IDs, or if script triggers fire. The minimal phrase 'Duplicate an existing record' lacks necessary detail.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence. While more detail could be beneficial, the current length is appropriate for a simple operation and avoids verbosity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the lack of output schema, the description should clarify what the tool returns (e.g., new record ID). It does not explain the result, leaving a gap in completeness. The description is too minimal for a tool that modifies state.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the description adds no extra meaning beyond the parameter descriptions. Baseline score of 3 is appropriate as the schema already documents the parameters adequately.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Duplicate an existing record' clearly states the action (duplicate) and the resource (existing record), distinguishing it from sibling tools like create, edit, or delete. It is concise but sufficient for understanding the basic purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives (e.g., fm_create_record for new records). The description does not mention prerequisites or context, leaving the agent without decision support.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

fm_edit_recordC

Edit an existing record

ParametersJSON Schema
NameRequiredDescriptionDefault
layoutYesLayout name
databaseNoDatabase name (optional, uses default from session if not provided)
recordIdYesRecord ID
fieldDataYesField data to update as key-value pairs

TDQS

C2.6/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must convey behavioral traits. It only says 'Edit' but fails to disclose details like idempotency, partial update behavior, error responses, or permission requirements.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very concise (4 words) but lacks structure and fails to add meaningful information. It is not overly verbose, but brevity without substance is not beneficial.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description provides no context about return values, error handling, or behavior. Given no output schema and a 4-parameter tool, this is insufficient for an agent to use it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% (all parameters have descriptions), so the description adds no additional value beyond the schema. Baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Edit an existing record' clearly states the action and resource. It effectively distinguishes from sibling tools like create or delete, though it lacks additional scope details.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives, nor on prerequisites such as authentication or session state.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

fm_execute_scriptB

Execute a FileMaker script from a specific layout

ParametersJSON Schema
NameRequiredDescriptionDefault
layoutYesLayout name
databaseNoDatabase name (optional, uses default from session if not provided)
scriptNameYesName of the script to execute
scriptParameterNoOptional parameter to pass to the script

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided. Description does not disclose behavioral traits like side effects, authentication requirements, or execution behavior beyond the verb 'execute'. Minimal transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single concise sentence that is front-loaded with the action and resource. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema and description fails to explain return values or execution result. Also missing context about connection or database requirements. Incomplete for a script execution tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema covers all parameters with descriptions (100%). Description adds no additional meaning beyond 'execute' context. Baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clear verb 'execute' with specific resource 'FileMaker script' and scope 'from a specific layout'. Distinct from sibling tools like fm_get_scripts or fm_create_record.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives such as fm_set_global_fields or script management tools. Implied usage only.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

fm_find_recordsC

Find records using a query. Query is an array of search criteria objects.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoNumber of records to return (optional)
queryYesArray of query objects (e.g., [{"FirstName": "John"}, {"LastName": "Doe"}])
layoutYesLayout name
offsetNoStarting record (optional)
databaseNoDatabase name (optional, uses default from session if not provided)

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral transparency. It only mentions that the query is an array of search objects, but does not disclose important behaviors such as how multiple query objects are combined (AND/OR), what happens on no results, performance implications, or whether the search is case-sensitive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise at two sentences with no wasted words. It front-loads the purpose. However, it lacks important details that could be added without becoming verbose, such as return format or example usage.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given there is no output schema, the description should at least mention the return format (e.g., list of records). It does not cover pagination, error handling, or how to use multiple query criteria. The tool has 5 parameters but the description glosses over their interaction. It is incomplete for the agent to use effectively.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

All 5 parameters have descriptions in the schema, so the schema coverage is 100%. The description adds a slight clarification that the query is an 'array of search criteria objects' but does not explain the structure of those objects or how to construct complex queries. It does not improve meaningfully beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool finds records using a query, specifying the verb 'find' and the resource 'records'. It mentions the query is an array of objects, which distinguishes it from other retrieval tools like fm_get_records that likely return all records. However, it does not explicitly differentiate from sibling search tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives like fm_get_records or fm_get_record_by_id. There is no mention of prerequisites, limitations, or when not to use it. The agent is left to infer usage context from the name and parameters.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

fm_get_current_connectionA

Get the currently active database connection details (password masked)

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses that the password is masked in the output, a key behavioral trait. No annotations are present, so the description carries the full burden. It does not mention side effects or permissions, but for a read-only get operation, the disclosure of password masking is sufficient.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, focused sentence with no wasted words. It front-loads the action and immediately adds a crucial detail (password masked). Every word contributes meaning.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (no parameters, no output schema), the description covers the essential purpose and a notable behavioral detail. However, it does not specify what fields are included in 'details', which could be considered a minor gap. Sibling tools exist but are not referenced.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, and schema coverage is 100% (vacuously). According to guidelines, no parameters means baseline score of 4. The description adds no parameter info because none is needed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states that the tool retrieves the currently active database connection details, with a specific verb 'Get' and resource 'connection details'. It distinguishes itself from sibling tools like fm_list_connections (which lists all connections) by specifying 'currently active'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage when needing details of the active connection, but it does not explicitly guide when to use this tool versus alternatives (e.g., fm_list_connections for all connections, fm_set_connection to change the active one). No when-not-to-use or alternative references are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

fm_get_databasesA

List all available databases on the FileMaker Server

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description must convey behavioral traits. 'List all available databases' clearly indicates a read-only operation, which is accurate and non-contradictory. It adds no additional context beyond the obvious, which is sufficient for this simple tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, front-loaded sentence delivers the purpose with no extraneous words. Every word earns its place, and the structure is optimally concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with no parameters and no output schema, the description is minimally adequate. It states the action and resource but does not elaborate on the return format or any nuances (e.g., whether the list is sorted, whether it includes system databases). A bit more detail would improve completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has no parameters, so the schema provides full coverage. The description does not need to add parameter-level details, and it correctly omits them. Baseline 4 is appropriate given zero parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses the specific verb 'List' and clearly identifies the resource as 'all available databases on the FileMaker Server'. It is immediately distinguishable from sibling tools that deal with layouts, scripts, or records.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description does not provide guidance on when to use this tool versus alternatives. It only states the function, leaving the agent to infer the context from the tool name and sibling set.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

fm_get_layout_metadataA

Get metadata for a specific layout including field definitions

ParametersJSON Schema
NameRequiredDescriptionDefault
layoutYesLayout name
databaseNoDatabase name (optional, uses default from session if not provided)

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must convey behavioral traits. While 'get' implies a read-only operation, the description does not explicitly state that the tool has no side effects, require certain permissions, or have rate limits. This lack of clarity is especially problematic for a tool with zero annotation coverage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, well-structured sentence that conveys the essential purpose without unnecessary words. It is front-loaded with key information and remains appropriate for the tool's simplicity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has two parameters and no output schema, the description could provide more context about the return value (e.g., structure of metadata, whether field definitions include types or attributes). It mentions 'field definitions' but omits other potential metadata like layout security or scripts. The description is minimally complete but leaves gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage, so the schema itself documents both parameters meaningfully. The description adds no extra semantic information beyond what the schema provides, resulting in a baseline score of 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Get metadata for a specific layout including field definitions'. It uses a precise verb ('Get') and identifies the resource ('metadata for a specific layout'). This effectively distinguishes it from sibling tools like 'fm_get_layouts' (which lists layout names) and 'fm_get_records' (which retrieves records).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies use for retrieving detailed layout metadata, but it does not provide explicit guidance on when to use this tool versus alternatives like 'fm_get_layouts' or 'fm_get_records'. No exclusion criteria or prerequisites are mentioned, limiting the agent's ability to decide between similar tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

fm_get_layoutsB

Get all layouts for a database

ParametersJSON Schema
NameRequiredDescriptionDefault
databaseNoDatabase name (optional, uses default from session if not provided)

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It does not disclose whether this is a read-only operation, what the output format is, or if an active session is required.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very concise with a single sentence. While efficient, it could benefit from additional context without being overly verbose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the low complexity (one optional parameter) and no output schema, the description lacks completeness. It fails to explain the return format (e.g., list of layout names or objects), which is essential for usage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the schema adequately describes the optional database parameter. The description adds no new meaning beyond restating 'for a database', so it meets the baseline without adding value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Get all layouts for a database' uses a specific verb and resource, clearly distinguishing from sibling 'fm_get_layout_metadata' which targets a single layout's metadata.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for retrieving layouts but does not provide explicit context on when to use versus alternatives like 'fm_get_layout_metadata', nor prerequisites such as an active connection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

fm_get_product_infoA

Get FileMaker Server product information including date/time formats

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, and the description lacks details on read-only nature, authentication needs, or side effects, which is a gap for a mutation-free tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single, informative sentence with no wasted words, front-loaded with the verb and resource.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description only hints at content (date/time formats) but omits what else 'product information' entails, leaving gaps for an agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters exist, so schema coverage is 100%. The description adds value by specifying the inclusion of date/time formats beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it retrieves product information with specific mention of date/time formats, and no sibling tool duplicates this function.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus alternatives, but its unique function among siblings implies its usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

fm_get_record_by_idC

Get a single record by its recordId

ParametersJSON Schema
NameRequiredDescriptionDefault
layoutYesLayout name
databaseNoDatabase name (optional, uses default from session if not provided)
recordIdYesRecord ID

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so the description must disclose behavior. It only states the basic function, omitting details like error handling, auth requirements, or effects on the system. The description does not add value beyond the name.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence with no extraneous words. Front-loaded with the core action. Perfectly concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema and many sibling tools; the description should at least hint at return value or context. It fails to mention that the record is returned in a specific format or that layout is required. Incomplete for the complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description adds no additional meaning beyond the parameter descriptions in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves a single record by recordId. It distinguishes from sibling tools like fm_get_records (multiple records) and fm_find_records (search), but does not explicitly mention these alternatives.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool vs alternatives. No mention of prerequisites (e.g., knowing the recordId) or when not to use it. The description is purely functional.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

fm_get_recordsB

Get records from a layout with pagination

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoNumber of records to return (default: 20)
layoutYesLayout name
offsetNoStarting record (default: 1)
databaseNoDatabase name (optional, uses default from session if not provided)

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It only mentions 'pagination' but does not disclose behavioral traits such as read-only nature, authentication requirements, or what happens with large result sets. This is insufficient for a tool with no annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence that is front-loaded with the core purpose. However, it could be slightly more informative without being verbose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 4 parameters, no output schema, and many siblings, the description is incomplete. It doesn't explain return format, pagination behavior (e.g., total count or cursors), or how this differs from fm_find_records. More context is needed for an agent to use it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so baseline is 3. The description does not add meaning beyond the schema; for example, it doesn't explain how 'limit', 'offset', and 'database' interplay with pagination. It merely restates the pagination concept.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Get' and the resource 'records from a layout', and highlights the key feature 'pagination'. It effectively distinguishes this tool from siblings like fm_get_record_by_id (single record) and fm_find_records (search).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for paginated retrieval of records from a layout but provides no explicit guidance on when to use this tool versus alternatives like fm_find_records or fm_get_record_by_id. It lacks 'when-not' or alternative references.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

fm_get_scriptsA

Get all scripts for a database

ParametersJSON Schema
NameRequiredDescriptionDefault
databaseNoDatabase name (optional, uses default from session if not provided)

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must disclose behavior. It only states the basic function; it does not indicate that this is a read-only operation, whether authentication is required, or what the output format is. The agent has limited information about side effects or requirements.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no redundant words. It efficiently communicates the core function.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple list tool with one optional parameter and no output schema, the description is adequate but lacks details about the return value (e.g., script names, or full metadata). It also does not clarify behavior when the database parameter is omitted, though the schema covers that.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema covers 100% of parameters with a description: 'Database name (optional, uses default from session if not provided)'. This is informative and adds meaning. The tool description does not add extra parameter info, but the schema itself is sufficient, so a score of 4 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Get all scripts for a database' clearly states the action (get), the resource (scripts), and scope (all for a database). It distinguishes from siblings like fm_execute_script (runs scripts) and fm_get_databases (lists databases).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool or alternatives. It does not mention typical workflows, such as using it before fm_execute_script, or prerequisites like being connected.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

fm_list_connectionsB

List all available predefined database connections

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It fails to disclose whether a session is required, if the list is read-only, or what format the connection data takes. The tool's behavior beyond listing is opaque.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that is appropriately concise for a zero-parameter tool. No filler or unnecessary detail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (no params, no output schema), the description is adequate but could be improved by clarifying what 'predefined database connections' means and whether it returns identifiers or full details. This would help the agent choose among sibling tools.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are no parameters, so the schema fully defines the input. The description adds no parameter-specific information, but none is needed. Baseline score of 4 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists all available predefined database connections. However, it does not differentiate from sibling tool 'fm_config_list_connections' which likely serves a similar purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives like 'fm_set_connection', 'fm_connect', or 'fm_get_current_connection'. The agent is left to infer context from the name alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

fm_loginA

Authenticate with FileMaker Server and get a session token. Required before using most other tools. External database credentials can be configured via .env (FM_EXTERNAL_DATABASES) or passed as fmDataSource parameter.

ParametersJSON Schema
NameRequiredDescriptionDefault
databaseNoDatabase name (optional, uses default from .env if not provided)
passwordNoPassword (optional, uses default from .env if not provided)
usernameNoUsername (optional, uses default from .env if not provided)
fmDataSourceNoArray of external database credentials (optional, overrides FM_EXTERNAL_DATABASES from .env). Each object must contain: database, username, password

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided. The description mentions getting a session token and external database configuration, but does not disclose failure behavior, token expiration, or other edge cases.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences: first states purpose, second adds usage context. No redundant information, front-loaded effectively.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers primary purpose, prerequisite role, and external database setup. But lacks details on token usage, error handling, or success/failure indicators, which would be helpful given the tool's criticality.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and schema descriptions already detail each parameter's optionality and default behavior. The description adds context about .env and fmDataSource, but does not significantly extend understanding beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool authenticates and returns a session token, and it is required before using most other tools. However, it does not explicitly differentiate from siblings like fm_connect or fm_set_connection.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description says it's required before most other tools and discusses external database credentials. But it lacks explicit when-not-to-use guidance or comparisons with alternative authentication methods.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

fm_logoutA

End the current FileMaker Server session

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, and the description only says 'End the current FileMaker Server session'. It does not disclose whether the session is invalidated immediately, if any cleanup occurs, or if an active session is required.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One sentence clearly conveys the action without extraneous text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple session-logout action with no parameters, the description provides the essential purpose. However, it lacks any indication of return value or error conditions, which could be helpful.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are no parameters in the schema, so the description adds no additional parameter information. The baseline is 4 as schema coverage is 100%.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb 'End' and identifies the resource 'current FileMaker Server session', clearly distinguishing it from sibling tools like fm_login or fm_validate_session.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description does not specify when to use this tool vs alternatives like fm_login or fm_validate_session. It only states the action without context on prerequisites or consequences.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

fm_set_connectionB

Switch to a predefined FileMaker database connection

ParametersJSON Schema
NameRequiredDescriptionDefault
connectionNameYesName of the predefined connection (e.g., 'production', 'staging')

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are present, so the description carries the behavioral burden. 'Switch' implies a state change, but no details on side effects (e.g., current connection closure, error behavior for invalid names). For a simple action, the transparency is adequate but could be improved.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence with no wasted words. It is front-loaded with the key action. However, it could be slightly more informative without becoming verbose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has one parameter and no output schema. The description is minimally complete for a simple switch action, but lacks context on return values, success signals, or error conditions. Additional completeness would improve usability.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% for the single parameter, which already includes an example. The tool description adds no further meaning beyond the schema. Baseline 3 is appropriate as the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb 'switch' and resource 'predefined FileMaker database connection'. It clearly distinguishes from sibling tools like fm_connect or fm_list_connections by indicating it operates on a predefined connection.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool vs alternatives. With many sibling connection tools (fm_connect, fm_set_current_connection, etc.), the description should clarify that this is for switching to a predefined named connection rather than establishing a new one. No usage context or when-not-to-use is provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

fm_set_global_fieldsC

Set global field values

ParametersJSON Schema
NameRequiredDescriptionDefault
databaseNoDatabase name (optional, uses default from session if not provided)
globalFieldsYesGlobal fields as key-value pairs

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must disclose behavioral traits. It only states the action without mentioning side effects, permissions, reversibility, or impact on other operations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single short sentence with no extraneous words. It is concise but could be more informative while remaining succinct.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations and no output schema, the description is insufficient. It does not explain return values, effects, or how the operation fits into the broader workflow.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, with descriptions for both parameters. The tool description adds no additional meaning beyond what the schema already provides, meeting baseline expectations.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Set global field values' clearly states the verb and resource. However, it does not explicitly differentiate from sibling tools, though the uniqueness seems implied given no other tool mentions global fields.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives, when not to use it, or any prerequisites. The description is purely functional without contextual advice.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

fm_upload_to_containerC

Upload a file to a container field

ParametersJSON Schema
NameRequiredDescriptionDefault
layoutYesLayout name
databaseNoDatabase name (optional, uses default from session if not provided)
filePathYesPath to the file to upload
recordIdYesRecord ID
containerFieldNameYesName of the container field

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, so the description carries full burden. It only states the action without disclosing behavioral traits like overwriting behavior, permission requirements, or side effects. For a mutation tool, this is insufficient.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence with no wasted words. It is front-loaded and easy to parse. However, it could be expanded slightly to include more context without losing conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema and moderate complexity (5 parameters, required fields), the description is too minimal. It does not explain return values, error handling, or the distinction from the sibling tool for repetitions. The context is incomplete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% coverage with descriptions for all 5 parameters. The description does not add extra meaning beyond what the schema already provides. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Upload' and resource 'file to a container field'. However, it does not distinguish from the sibling tool 'fm_upload_to_container_repetition', which likely uploads to a specific repetition. The description is unambiguous but lacks sibling differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives, nor any prerequisites or context. The description gives no hints about typical use cases or limitations.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

fm_upload_to_container_repetitionB

Upload a file to a container field with repetition

ParametersJSON Schema
NameRequiredDescriptionDefault
layoutYesLayout name
databaseNoDatabase name (optional, uses default from session if not provided)
filePathYesPath to the file to upload
recordIdYesRecord ID
repetitionYesRepetition number (1-based index)
containerFieldNameYesName of the container field

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden for behavioral disclosure, but it only states the basic action. It fails to mention overwrite behavior, file size limits, authentication requirements, or side effects, leaving significant gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence that efficiently conveys the core action and key differentiator. Every word is necessary and there is no wasted text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (6 parameters, no output schema, no annotations), the description is too brief. It omits context on return values, error conditions, and practical usage, making it incomplete for full understanding.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% coverage describing all parameters. The description adds no additional meaning beyond what the schema already provides, so it meets the baseline without adding value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description specifies the verb 'Upload', the resource 'file to a container field', and the distinguishing condition 'with repetition'. This clearly differentiates it from the sibling tool 'fm_upload_to_container' which lacks repetition handling.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'with repetition' implies usage when the container field supports repetitions, but there is no explicit guidance on when to use this tool versus alternatives like 'fm_upload_to_container', nor any prerequisites or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

fm_validate_sessionA

Check if the current session token is still valid

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. It only says 'check if valid' but doesn't disclose return type, possible exceptions, or side effects. A boolean or error indication would improve transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single, clear sentence with no unnecessary words. Efficiently communicates purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Sufficient for a no-parameter tool, but lacking output schema or description of return value. A check tool should indicate what it returns (e.g., true/false) to be complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters exist; baseline of 4 applies. Description adds no parameter info, but schema coverage is 100%.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states the verb 'Check' and the specific resource 'current session token validity'. Distinct from sibling tools which are about connection management and CRUD operations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Implies use when needing to verify session token, but no explicit guidance on when to use vs. alternatives like fm_login or fm_connect.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 28 tool updatesv0.0.16
    • First observedfm_config_add_connection
    • First observedfm_config_get_connection
    • First observedfm_config_list_connections
    • First observedfm_config_remove_connection
    • First observedfm_config_set_default_connection
    • First observedfm_connect
    • First observedfm_create_record
    • First observedfm_delete_record
    • First observedfm_duplicate_record
    • First observedfm_edit_record
    • First observedfm_execute_script
    • First observedfm_find_records
    • First observedfm_get_current_connection
    • First observedfm_get_databases
    • First observedfm_get_layout_metadata
    • First observedfm_get_layouts
    • First observedfm_get_product_info
    • First observedfm_get_record_by_id
    • First observedfm_get_records
    • First observedfm_get_scripts
    • First observedfm_list_connections
    • First observedfm_login
    • First observedfm_logout
    • First observedfm_set_connection
    • First observedfm_set_global_fields
    • First observedfm_upload_to_container
    • First observedfm_upload_to_container_repetition
    • First observedfm_validate_session

TDQS

B3.3/5.0
Disambiguation3/5

Most tools have distinct purposes, but there is clear overlap: fm_list_connections and fm_config_list_connections have identical descriptions, causing ambiguity. Also, fm_set_connection and fm_connect serve similar roles (switching connections) with subtle differences. These duplicates reduce clarity.

Naming Consistency5/5

All tools follow a consistent 'fm_verb_noun' pattern. Verbs like config_add, get, create, edit, delete, find are used predictably. The prefix 'config_' for configuration tools adds internal consistency without breaking the pattern.

Tool Count3/5

With 28 tools, the count is on the high side for an MCP server. While FileMaker has many operations, some tools like the two upload container tools could be merged. The number is borderline between 'slightly over' and 'too many' per the rubric.

Completeness5/5

The tool set covers the full lifecycle: configuration, session management, metadata retrieval, CRUD operations, finding, file uploads, global field setting, and script execution. There are no obvious gaps for typical FileMaker Data API usage.

Maintenance

ActivityInactive
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI assistants to connect to and interact with PostgreSQL, MySQL, SQLite, and MongoDB databases through natural language, supporting schema exploration, query execution, data export, and more.
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables Claude to interact with FileMaker databases through the FileMaker Data API, supporting multi-database connections, CRUD operations, script execution, and metadata discovery.
    11
    MIT
  • A
    license
    B
    quality
    C
    maintenance
    Enables AI agents to interact with local SQLite databases with full CRUD, schema introspection, foreign key relations, generated columns, and multi-format import/export (CSV, JSON, XLSX) through natural language.
    26
    17
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    Enables AI assistants to query, analyze, and discover FileMaker database schemas via OData v4, with pandas-powered analytics for efficient data summaries.
    13
    10
    GPL 3.0

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/fsans/FileMaker-Server-DAPI-MCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server