Glide API MCP Server
The Glide API MCP Server enables secure, type-safe interaction with Glide API (v1 & v2) for app data management:
Configure API version and authentication using
set_api_versionor environment variablesRetrieve app information with
get_appList app tables using
get_tablesGet table rows with pagination support via
get_table_rowsAdd new rows to tables using
add_table_rowUpdate existing rows with
update_table_row
Provides a comprehensive interface to the Glide API (v1 & v2), allowing management of Glide apps, tables, and data with tools for retrieving app information, listing tables, fetching table data, adding new rows, and updating existing rows.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Glide API MCP Serverget the first 10 rows from the customers table in app ABC123"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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 authenticationget_app: Get app informationget_tables: List app tablesget_table_rows: Get table dataadd_table_row: Add new rowupdate_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
Never commit API keys to version control
Use environment variables in the MCP settings file
Regularly rotate your API keys
Set appropriate file permissions on the settings file
Development
Install dependencies:
npm installBuild the server:
npm run buildFor development with auto-rebuild:
npm run watchUsage Examples
Get app information:
use_mcp_tool({
server_name: "glide-api",
tool_name: "get_app",
arguments: {
appId: "your-app-id"
}
});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 toolsadd_table_rowC
Add a new row to a table in a Glide app
| Name | Required | Description | Default |
|---|---|---|---|
| appId | Yes | ID of the Glide app | |
| tableId | Yes | ID of the table | |
| values | Yes | Column values for the new row |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| appId | Yes | ID of the Glide app |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| appId | Yes | ID of the Glide app | |
| limit | No | Maximum number of rows to return | |
| offset | No | Number of rows to skip | |
| tableId | Yes | ID of the table |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| appId | Yes | ID of the Glide app |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| apiKey | Yes | API key for authentication | |
| version | Yes | API version to use |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| appId | Yes | ID of the Glide app | |
| rowId | Yes | ID of the row to update | |
| tableId | Yes | ID of the table | |
| values | Yes | New column values for the row |
TDQS
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.
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.
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.
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.
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.
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.
6 tool updates
v1.0.0- First observed
add_table_row - First observed
get_app - First observed
get_table_rows - First observed
get_tables - First observed
set_api_version - First observed
update_table_row
TDQS
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.
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.
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.
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
- GlideOAuthdev.glideapps
Glide's official MCP server — build, manage, and operate GlideOS apps, data, and workflows.
Model Context Protocol server for the Apideck Unified API. Connect any MCP-compatible agent framework to 100+ accounting systems, HRIS platforms, file storage providers, and more through one integration. More information https://www.apideck.com/mcp-server
Model Context Protocol server for Studex tools, notifications, and profile integrations
Airtable MCP Pack — wraps the Airtable REST API v0
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceEnables type-safe, bidirectional communication with Model Context Protocol services, allowing centralized management of model contexts over HTTP.209MIT
- AlicenseBqualityDmaintenanceA server for integrating with Placid.app's API, enabling listing templates and generating creatives using the Model Context Protocol with secure API token management.33114MIT
- AlicenseNot gradedqualityFmaintenanceProvides a Model Context Protocol interface for accessing Linear's issue tracking system, enabling users to query and search issues with TypeScript type safety and robust error handling.28830MIT
- AlicenseNot gradedqualityBmaintenanceEnables interaction with the Audius music platform API, supporting user, track, and playlist operations through the Model Context Protocol.215MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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