BaseQL MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| BASEQL_API_KEY | Yes | Your BaseQL API key. Must include the 'Bearer ' prefix, e.g., 'Bearer YOUR_API_KEY' | |
| BASEQL_API_ENDPOINT | Yes | Your BaseQL GraphQL endpoint URL, e.g., https://api.baseql.com/airtable/graphql/YOUR_APP_ID |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {} |
| resources | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| queryA | Execute custom GraphQL queries against your BaseQL endpoint. Use this for complex queries, joins across tables, or when other tools don't meet your needs. BaseQL uses Float (not Int) for numbers, _page_size/_page for pagination, and unquoted keys in filters like {email: "test@example.com"}. |
| getTableSchemaA | Get detailed schema information for a specific table including field names, types, and relationships. Use this to understand table structure before querying or to identify available fields for filtering/sorting. Essential for building correct GraphQL queries. |
| listTablesA | List all available tables (data sources) in your BaseQL endpoint. Use this first to discover what data is available, then use getTableSchema to understand specific table structures. Returns table names and descriptions. |
| queryTableA | Query data from a table with filtering, sorting, and pagination. Use this for most data retrieval needs. filter is passed directly to BaseQL _filter (supports operators like _eq, _in, _and, _or). Exact matches are case-sensitive unless you use advanced operators in _filter. |
| searchTableA | Search for records by exact, case-sensitive matches on string fields. This is not full-text search; it filters specific fields (use fields to control which). If you need case-insensitive or partial matching, BaseQL does not support it directly. |
| getFieldOptionsA | Discover possible values for select fields (dropdowns) by analyzing existing data. Use this to see what values are actually being used in a field before filtering or to understand data patterns. Returns unique values with counts. Note: Only shows values currently in use - empty options won't appear. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| BaseQL Schema | GraphQL schema information from your BaseQL endpoint |
TDQS
Scored across 6 tools
queryTable, searchTable, and query all perform data retrieval with overlapping capabilities. searchTable is essentially a restricted version of queryTable's filtering, creating ambiguity about which tool to use for a given task. The metadata tools (listTables, getTableSchema, getFieldOptions) are distinct, but the query tools lack clear boundaries.
Most tools follow a consistent verb+noun camelCase pattern (getTableSchema, queryTable, searchTable, getFieldOptions, listTables), with 'query' as a single-word exception. This is predictable and easy for agents to understand, with only minor inconsistency.
Six tools is a well-scoped number for a read-oriented database/GraphQL server. Each tool adds value, covering discovery, schema, querying, searching, and field analysis without being excessive or too sparse.
The tool set covers the core read workflows: discovering tables, inspecting schemas, querying data, searching strings, and exploring field values. However, the overlap between queryTable and searchTable suggests a missing clear role separation, and there are no mutation tools if BaseQL supports writes, though the provided tools appear read-only.