Skip to main content
Glama
knmurphy

Glide API MCP Server

by knmurphy

Glide API MCP Server

A Model Context Protocol server for interacting with the Glide API (v1 & v2).

Features

  • Support for both Glide API v1 and v2

  • Secure API key handling through environment variables

  • Type-safe TypeScript implementation

  • Comprehensive error handling

Related MCP server: Placid MCP Server

Available Tools

  • set_api_version: Configure API version and authentication

  • get_app: Get app information

  • get_tables: List app tables

  • get_table_rows: Get table data

  • add_table_row: Add new row

  • update_table_row: Update existing row

Secure Setup

1. Environment Variables

The server supports secure configuration through environment variables in the MCP settings file. Add your API credentials to the MCP settings file:

{
  "mcpServers": {
    "glide-api": {
      "command": "node",
      "args": ["path/to/build/index.js"],
      "env": {
        "GLIDE_API_KEY": "your-api-key-here",
        "GLIDE_API_VERSION": "v2"  // or "v1" for v1 API
      }
    }
  }
}

This approach keeps your API key secure by:

  • Storing it in a configuration file rather than in code

  • Keeping it out of version control

  • Making it easy to update without modifying code

2. Runtime Configuration

While environment variables are the recommended way to configure the server, you can also set or override the API version and key at runtime using the set_api_version tool:

use_mcp_tool({
  server_name: "glide-api",
  tool_name: "set_api_version",
  arguments: {
    version: "v2",
    apiKey: "your-api-key"
  }
});

Note: The runtime configuration will override any environment variables for the current session.

3. Security Best Practices

  1. Never commit API keys to version control

  2. Use environment variables in the MCP settings file

  3. Regularly rotate your API keys

  4. Set appropriate file permissions on the settings file

Development

Install dependencies:

npm install

Build the server:

npm run build

For development with auto-rebuild:

npm run watch

Usage Examples

  1. Get app information:

use_mcp_tool({
  server_name: "glide-api",
  tool_name: "get_app",
  arguments: {
    appId: "your-app-id"
  }
});
  1. Add a row to a table:

use_mcp_tool({
  server_name: "glide-api",
  tool_name: "add_table_row",
  arguments: {
    appId: "your-app-id",
    tableId: "your-table-id",
    values: {
      column1: "value1",
      column2: "value2"
    }
  }
});

Available Tools

6 tools
add_table_rowC

Add a new row to a table in a Glide app

ParametersJSON Schema
NameRequiredDescriptionDefault
appIdYesID of the Glide app
tableIdYesID of the table
valuesYesColumn values for the new row

TDQS

C2.9/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. While 'Add a new row' implies a write/mutation operation, it doesn't disclose important behavioral aspects like required permissions, whether the operation is idempotent, what happens on duplicate keys, error handling, or response format. The description provides minimal behavioral context beyond the basic 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?

The description is a single, clear sentence that efficiently communicates the core functionality without any wasted words. It's appropriately sized for a straightforward tool and gets directly to the point with no unnecessary elaboration.

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?

For a mutation tool with no annotations and no output schema, the description is insufficiently complete. It doesn't explain what happens after the row is added, what the response contains, error conditions, or how this operation relates to other table operations. Given the complexity of a write operation with nested objects in the values parameter, more context would be helpful.

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?

With 100% schema description coverage, the input schema already documents all three parameters thoroughly. The description doesn't add any meaningful parameter semantics beyond what's in the schema - it mentions 'table' and 'Glide app' which map to parameters, but provides no additional context about parameter relationships, constraints, or usage patterns.

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 ('Add a new row') and target resource ('to a table in a Glide app'), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'update_table_row' or specify what distinguishes this 'add' operation from other table 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?

The description provides no guidance on when to use this tool versus alternatives like 'update_table_row' or 'get_table_rows'. There's no mention of prerequisites, error conditions, or typical use cases for adding rows versus other table operations.

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

get_appC

Get information about a Glide app

ParametersJSON Schema
NameRequiredDescriptionDefault
appIdYesID of the Glide app

TDQS

C2.7/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 disclosure. It states the tool retrieves information (implying a read-only operation) but doesn't specify what type of information (e.g., metadata, configuration, status), whether it requires authentication, rate limits, error conditions, or response format. This leaves significant gaps for a tool with no 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, efficient sentence ('Get information about a Glide app') with zero waste. It's appropriately sized for a simple tool and front-loaded with the core purpose, making it easy to parse quickly.

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 simplicity (1 parameter, 100% schema coverage) but lack of annotations and output schema, the description is incomplete. It doesn't address what information is returned (e.g., app details, tables, settings), potential errors, or usage context. For a read operation with no structured output, more behavioral detail is needed to be fully helpful.

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 description adds no parameter semantics beyond what the input schema provides. The schema has 100% coverage with a clear description for 'appId' ('ID of the Glide app'), so the baseline is 3. The tool description doesn't explain what constitutes a valid app ID, where to find it, or examples, but the schema adequately documents the parameter.

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

Purpose3/5

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

The description states the tool's purpose ('Get information about a Glide app') with a clear verb ('Get') and resource ('Glide app'), but it's vague about what specific information is retrieved. It doesn't distinguish from siblings like 'get_tables' or 'get_table_rows', which also retrieve information from Glide apps but target different resources.

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. It doesn't mention prerequisites (e.g., needing an app ID), exclusions, or comparisons to sibling tools like 'get_tables' (for app structure) or 'get_table_rows' (for data). Usage is implied only by the tool name and description.

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

get_table_rowsC

Get rows from a table in a Glide app

ParametersJSON Schema
NameRequiredDescriptionDefault
appIdYesID of the Glide app
limitNoMaximum number of rows to return
offsetNoNumber of rows to skip
tableIdYesID of the table

TDQS

C2.9/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 of behavioral disclosure. It states the tool reads data ('Get rows'), implying it's likely read-only, but doesn't confirm safety, permissions, rate limits, or response format. For a data retrieval tool with zero annotation coverage, this leaves significant gaps in understanding its behavior.

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, efficient sentence that directly states the tool's purpose without unnecessary words. It's front-loaded and appropriately sized for its function, earning full marks for 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 tool's complexity (4 parameters, no output schema, no annotations), the description is inadequate. It doesn't explain return values (e.g., row format), error conditions, or how parameters interact (e.g., limit/offset for pagination). For a data retrieval tool, this leaves too much unspecified.

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 parameters are well-documented in the schema. The description adds no additional meaning beyond what the schema provides (e.g., no examples or context for appId/tableId). Baseline 3 is appropriate when 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 clearly states the action ('Get rows') and resource ('from a table in a Glide app'), making the purpose immediately understandable. However, it doesn't distinguish this tool from its sibling 'get_tables' (which likely lists tables rather than rows), so it misses full 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?

The description provides no guidance on when to use this tool versus alternatives like 'get_tables' or 'add_table_row'. It lacks context about prerequisites (e.g., needing app/table IDs) or exclusions, leaving the agent to infer usage from the tool name alone.

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

get_tablesC

Get tables for a Glide app

ParametersJSON Schema
NameRequiredDescriptionDefault
appIdYesID of the Glide app

TDQS

C2.6/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 but adds minimal behavioral context. It implies a read operation ('Get') but doesn't disclose traits like authentication needs, rate limits, pagination, error handling, or what 'tables' includes (e.g., structure, counts). This leaves significant gaps for safe invocation.

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 with no wasted words, making it appropriately concise. However, it lacks front-loading of critical details (e.g., scope or differentiation), slightly reducing its effectiveness despite the brevity.

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 simplicity (1 parameter, no output schema) and lack of annotations, the description is incomplete. It doesn't explain what 'tables' entails (e.g., list of names, full metadata), return format, or error cases, leaving the agent with insufficient context for reliable 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 description coverage is 100%, so the input schema fully documents the single parameter 'appId'. The description adds no additional meaning beyond implying the parameter is used to identify the Glide app, which is already clear from the schema. Baseline 3 is appropriate as the schema handles parameter documentation.

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

Purpose3/5

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

The description 'Get tables for a Glide app' states a clear verb ('Get') and resource ('tables'), but it's vague about scope and granularity. It doesn't distinguish from sibling tools like 'get_table_rows' or 'get_app', leaving ambiguity about what exactly is retrieved (e.g., metadata vs. data).

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. It doesn't mention prerequisites (e.g., needing an appId), exclusions, or comparisons to siblings like 'get_table_rows' (for row data) or 'get_app' (for app details), leaving the agent to infer usage context.

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

set_api_versionB

Set the Glide API version and authentication to use

ParametersJSON Schema
NameRequiredDescriptionDefault
apiKeyYesAPI key for authentication
versionYesAPI version to use

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 burden for behavioral disclosure. It mentions authentication but doesn't specify whether this is a one-time configuration, if it persists across sessions, what happens if invalid credentials are provided, or any rate limits. For a configuration tool with security implications, 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.

Conciseness5/5

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

The description is a single, efficient sentence that gets straight to the point with zero wasted words. It's appropriately sized for a simple configuration tool and front-loads the essential information.

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 configuration tool with 2 parameters and 100% schema coverage, the description is minimally adequate but lacks important context. Without annotations or output schema, it should explain more about the behavioral implications (persistence, error handling) and relationship to sibling tools. The description alone doesn't provide complete operational 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?

Schema description coverage is 100%, so the schema already documents both parameters thoroughly. The description adds no additional meaning about parameters beyond what's in the schema (e.g., format requirements for apiKey, implications of choosing v1 vs v2). Baseline 3 is appropriate when 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 clearly states the action ('Set') and the target resources ('Glide API version and authentication'), making the purpose understandable. However, it doesn't distinguish this tool from its siblings (which are all data manipulation tools), so it doesn't reach the highest score.

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, nor does it mention prerequisites like needing to set API version before other operations. It simply states what the tool does without contextual usage information.

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

update_table_rowC

Update an existing row in a table

ParametersJSON Schema
NameRequiredDescriptionDefault
appIdYesID of the Glide app
rowIdYesID of the row to update
tableIdYesID of the table
valuesYesNew column values for the row

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 full burden. It states 'Update' implying mutation but lacks details on permissions, whether changes are reversible, error handling, or response format. For a mutation tool with zero annotation coverage, this is a significant gap in 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?

The description is a single, efficient sentence with zero waste. It's appropriately sized and front-loaded, directly stating the core action without unnecessary elaboration.

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 this is a mutation tool with no annotations, no output schema, and incomplete behavioral transparency, the description is inadequate. It should cover more about the update operation's effects, error cases, or response expectations to be complete for agent 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 description coverage is 100%, so the schema fully documents all 4 parameters. The description adds no additional meaning beyond implying that 'values' maps to column updates, which is already clear from the schema. Baseline 3 is appropriate when 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 clearly states the verb ('Update') and resource ('an existing row in a table'), making the purpose unambiguous. However, it doesn't explicitly differentiate from sibling tools like 'add_table_row' (create vs. update) or 'get_table_rows' (read vs. write), which prevents a perfect score.

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. It doesn't mention prerequisites (e.g., needing row IDs from 'get_table_rows'), exclusions, or comparisons to siblings like 'add_table_row' for new rows or 'get_table_rows' for reading data.

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. 6 tool updatesv1.0.0
    • First observedadd_table_row
    • First observedget_app
    • First observedget_table_rows
    • First observedget_tables
    • First observedset_api_version
    • First observedupdate_table_row

TDQS

B3.4/5.0
Disambiguation5/5

Each tool has a clearly distinct purpose with no overlap: add_table_row and update_table_row handle row modifications, get_table_rows and get_tables retrieve data, get_app provides app metadata, and set_api_version manages configuration. The descriptions make it easy to differentiate between table-level and row-level operations.

Naming Consistency5/5

All tools follow a consistent verb_noun pattern with snake_case naming: add_table_row, get_app, get_table_rows, get_tables, set_api_version, update_table_row. The verbs (add, get, set, update) are appropriately chosen and applied consistently across the toolset.

Tool Count5/5

With 6 tools, this server is well-scoped for interacting with Glide apps and tables. The count is appropriate for the domain, covering essential CRUD operations (add, get, update for rows), metadata retrieval (app and tables), and configuration (API version), without being overwhelming or insufficient.

Completeness4/5

The toolset provides good coverage for core Glide operations: CRUD for table rows (add, get, update), app and table metadata retrieval, and API configuration. A minor gap is the lack of a delete_table_row tool, which could limit full lifecycle management, but agents can work around this with updates or other methods.

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

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/knmurphy/glide-api-mcp-server'

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