BitScale MCP Server
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., "@BitScale MCP ServerList my grids and show the data for the 'Sales Outreach' grid."
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.
BitScale MCP Server
Connect your BitScale workspace to Claude via the Model Context Protocol (MCP).
Setup
1. Install uv (one-time)
macOS / Linux
curl -LsSf https://astral.sh/uv/install.sh | sh
OR
brew install uvWindows
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"2. Add to Claude Desktop config
Open ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows) and add:
{
"mcpServers": {
"bitscale": {
"command": "uvx",
"args": ["bitscale-mcp"],
"env": {
"BITSCALE_API_KEY": "your_api_key_here"
}
}
}
}3. Restart Claude Desktop
That's it. No cloning, no pip install — uvx pulls and runs the package automatically.
Related MCP server: mcp-openhexa
Tools
Tool | Description |
| Get workspace plan, credit balances, search limits, and member counts |
| List all grids with optional search & pagination, returns column definitions |
| Get a grid's full schema — columns, settings, and data sources |
| Get a ready-to-use curl command and API contract for running a grid — call this first to discover required inputs |
| Run a grid by providing input values, supports sync and async modes |
| Poll the status of an async or timed-out grid run by request_id |
| Rotate the workspace API key (irreversible, invalidates current key) |
Usage Examples
"List all my BitScale grids"
"Show me the details of the Lead Enrichment grid"
"Get the curl command for the Lead Enrichment grid"
"Run the Lead Enrichment grid with company_name 'Acme Corp' and website 'acme.com'"
"Find phone numbers for people at Stripe using my BitScale grid"
"Check the status of run 550e8400-e29b-41d4-a716-446655440000"
How Grid Runs Work
Discover grids — call
list_gridsto find available grids and their IDs.Get the API contract — call
get_grid_curlwith the grid ID to get the exact input fields required, a shaped request body, and a copy-paste curl command. This is the recommended way to understand what a grid needs before running it.Run the grid — call
run_gridwith the grid ID and aninputsmap of human-readable labels to values (as returned byget_grid_curl). In sync mode (default), results return directly within 120 seconds. In async mode, you get arequest_idto poll.Poll if needed — if the run is still processing, call
get_run_statuswith therequest_idevery 2-5 seconds until status iscompleted.
Input Labels vs Output Column UUIDs
This is an important distinction when using run_grid:
inputs— uses human-readable labels like"company_name","website","email". These labels are derived from the source columns configured on the grid's BitScale API data source. They are not column UUIDs. You can find the exact labels in the BitScale app by clicking the Data Source column → BitScale API source."inputs": { "company_name": "Acme Corp", "website": "acme.com" }output_columns— uses column UUIDs fromget_grid_detailsto filter which enriched columns appear in the response."output_columns": [ "6ba7b810-9dad-11d1-80b4-00c04fd430c8", "6ba7b811-9dad-11d1-80b4-00c04fd430c8" ]Response
outputs— keyed by column UUIDs, each containing{value, name}wherenameis the human-readable display name."outputs": { "6ba7b810-9dad-11d1-80b4-00c04fd430c8": { "value": "AI-powered data enrichment platform", "name": "Company Description" } }
Claude Code
claude mcp add bitscale \
--command uvx \
--args bitscale-mcp \
--env BITSCALE_API_KEY=your_api_key_hereAPI Reference
Requests hit https://api.bitscale.ai/api/v1, authenticated via X-API-KEY header. Default rate limit: 5 req/s per workspace.
Endpoint | Method | Tool |
| GET |
|
| GET |
|
| GET |
|
| GET |
|
| POST |
|
| GET |
|
| POST |
|
API Key Rotation
Calling rotate_api_key immediately invalidates the current key and returns a new one. Update BITSCALE_API_KEY in your config and restart Claude Desktop after rotating.
License
MIT
Available Tools
7 toolsget_grid_curlA
Get a ready-to-use curl command and structured API contract for running a specific Grid. Call this BEFORE run_grid to discover the exact input fields required by the grid — no trial and error needed.
This endpoint returns the derived required inputs (traced from column dependencies), the full run URL, request body shape, and a copy-paste- ready curl command.
💡 Recommended workflow: 1. Call get_grid_curl to discover the exact input fields. 2. Call run_grid with the returned inputs shape and real values.
Args: grid_id: UUID of the grid. Found in the grid URL at app.bitscale.ai/grid/{gridId}, or from list_grids. output_columns: Optional comma-separated list of column key IDs to include in the run. When provided, required inputs are derived only from the dependencies of the specified columns. When omitted, inputs are derived from all runnable columns in the grid. Example: "col-uuid-1,col-uuid-2"
Returns: grid_id, grid_name, run_url, method, headers, request_body (with mode, inputs shape, and optional output_columns), output_columns array (id, name, type for each requested column), and a curl string ready to copy-paste into a terminal (replace YOUR_WORKSPACE_API_KEY).
| Name | Required | Description | Default |
|---|---|---|---|
| grid_id | Yes | ||
| output_columns | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It explains the tool returns a curl command and structured API contract, including how required inputs are derived from column dependencies. It does not mention authentication needs or side effects, but as a read-only operation, this 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with a recommended workflow, bullet points for parameters, and a clear list of returned fields. It is concise, front-loaded, and every sentence adds value.
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 simple tool with 2 parameters and an existing output schema, the description is thorough. It details all return fields and the workflow. Minor omission: no mention of error handling or edge cases, but overall complete.
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 0% description coverage, so the description compensates fully. It explains grid_id as a UUID from the grid URL or list_grids, and output_columns as an optional comma-separated list with an example, adding significant meaning beyond the schema.
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 tool's purpose: 'Get a ready-to-use curl command and structured API contract for running a specific Grid.' The verb 'Get' and the resource 'curl command and API contract' are specific and distinguish it from sibling tools like 'run_grid' and 'list_grids'.
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 explicitly recommends calling this tool before 'run_grid' to discover input fields, providing a clear workflow. It implies when to use (before running) and offers guidance on obtaining the grid_id. However, it does not explicitly state when not to use or exclude alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_grid_detailsA
Get full metadata for a specific Grid, including all column definitions, grid settings, and attached data sources.
Use this to inspect a grid's schema before running it — especially to understand the grid's input labels and output column UUIDs needed for the run_grid tool.
Args: grid_id: UUID of the grid. Found in the grid URL at app.bitscale.ai/grid/{gridId}, or from list_grids results.
Returns: grid id, name, description, row_count, created_at, updated_at, settings (auto_run, auto_dedupe, visibility, dedupe_column_id), columns (all columns including text, enrichment, formula, merge types with their id/key and name), and sources (data sources with schedule info).
NOTE on columns vs run_grid inputs:
The column 'id' values here are UUIDs — use these for the 'output_columns' parameter of run_grid to filter which outputs you want.
The 'inputs' parameter of run_grid uses human-readable LABELS (e.g. "company_name", "website"), NOT column UUIDs. These labels are derived from the API data source columns configured on the grid. You can find the exact input labels in the BitScale app under the grid's Data Source → BitScale API panel, or by inspecting the source column names.
| Name | Required | Description | Default |
|---|---|---|---|
| grid_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It reveals that the operation is read-only (get metadata) and discloses important behavioral nuance: the distinction between column UUIDs (for 'output_columns') and human-readable labels (for 'inputs') in 'run_grid'. This prevents misuse.
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 well-structured with a clear header, usage note, args, returns, and a critical note section. However, the 'Args' section redundantly repeats the parameter definition already in the schema. Minor verbosity prevents a perfect score.
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 complexity of grid metadata and its relationship to 'run_grid', the description covers all essential aspects: purpose, usage context, parameter details, return structure, and crucial caveat about UUIDs vs labels. The presence of an output schema makes the returns section sufficient.
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 only parameter 'grid_id' has no schema description (0% coverage). The description fully compensates by explaining its format (UUID), where to find it (URL or list_grids), and its purpose, adding high value beyond the schema.
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 'Get' and resource 'full metadata for a specific Grid'. It distinguishes itself from siblings like 'list_grids' and 'run_grid' by focusing on schema inspection. The explicit list of included metadata (column definitions, settings, sources) leaves no ambiguity.
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 explicitly says 'Use this to inspect a grid's schema before running it' and explains why – to understand input labels and output column UUIDs for 'run_grid'. It also tells where to find the 'grid_id' parameter, providing clear when-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_run_statusA
Check the status of a previously triggered Grid run.
Use this after run_grid returns a request_id (either from async mode or when sync mode times out after 120 seconds).
Poll every 2-5 seconds until status is "completed" or "failed". Avoid polling more frequently as requests count toward the rate limit (5 req/sec per workspace).
Args: request_id: The request_id UUID returned by run_grid.
Returns: {mode, status, grid_id, outputs (when completed)}. Status is one of: "running", "completed", or "failed". When completed, outputs contains {column_id: {value, name}} for each enriched column.
| Name | Required | Description | Default |
|---|---|---|---|
| request_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Despite no annotations, the description fully discloses behavior: polling is required, mentions rate limit implications, and details the return structure including possible status values and output format when completed. This covers all key behavioral traits.
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 concise (8 lines), with a clear argument section and return description. Every sentence adds value: purpose, usage, polling guidance, and output format. No wasted words.
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?
The description is fully complete for a single-parameter polling tool. It covers the entire workflow: when to use, how to poll, what to expect in return, and how to interpret status. Output schema is implicitly described.
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 only parameter request_id is described as 'The request_id UUID returned by run_grid', adding crucial context beyond the schema's minimal title. With 0% schema description coverage, this fully compensates.
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 uses a specific verb 'Check' and resource 'status of a previously triggered Grid run', clearly distinguishing it from sibling tools like run_grid (which triggers) and get_grid_details (which gets grid details).
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?
Explicitly states when to use this tool ('after run_grid returns a request_id'), provides polling advice (every 2-5 seconds), warns about rate limit, and defines termination conditions ('completed' or 'failed'). No alternatives need exclusion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_workspace_detailsA
Get details about the current BitScale workspace — plan info, credit balances, people/company search limits, and member counts.
The workspace is identified automatically from the API key configured during MCP setup. No parameters needed.
Returns: workspace id, name, plan (name, credits_included, billing_interval, next_billing_date, price), credits (total, used, remaining, plan_credits, rollover, topup), people_company_searches (limit, used, remaining), and members (total, owners, admins, editors).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description lists the returned fields in detail, implying a read-only operation. No annotations are provided, so the description carries the full burden. It is transparent but could mention any side effects or permissions.
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 efficiently structured with a brief purpose statement followed by a bulleted list of returned fields. Every sentence is informative with no redundancy.
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 zero parameters and detailed output description, the description covers all necessary context for an agent to invoke the tool and interpret results. No gaps are apparent.
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?
Zero parameters are defined, and the description justifies why no parameters are needed (automatic workspace identification). This adds meaning beyond the empty schema.
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 tool retrieves details about the current BitScale workspace, including specific categories like plan info, credit balances, and member counts. It is distinct from sibling tools that deal with grids, runs, or API keys.
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 explains that no parameters are needed and the workspace is identified automatically from the API key. While it does not explicitly contrast with sibling tools, the context makes its use case clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_gridsA
List all Grids in the workspace with their column definitions.
Grids are spreadsheet-like tables in BitScale that hold data rows and enrichment/formula columns. Use this to discover available grids before running them.
Args: search: Optional keyword to filter grids by name (case-insensitive substring match). Example: "leads" to find lead-related grids. page: Page number for pagination (1-based, default: 1). limit: Results per page (default: 20, max: 100).
Returns: paginated list of grids, each with id, name, description, row_count, column_count, created_at, updated_at, and columns array. The columns array contains only runnable columns (type: enrichment, formula, or merge) with their id (column UUID), name, type, and dependencies.
Use the grid id from the results to call get_grid_details or run_grid. Note: the column UUIDs here are used for output_columns in run_grid. The input labels for run_grid are separate human-readable keys derived from the grid's API data source configuration.
| Name | Required | Description | Default |
|---|---|---|---|
| search | No | ||
| page | No | ||
| limit | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses that the tool returns a paginated list with column details, explains the column UUID usage for run_grid, and mentions case-insensitive substring matching for search. No behavioral contradictions.
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 well-structured with Args and Returns sections, but could be slightly more concise. However, it is efficient and front-loaded with key 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?
Given the tool has 3 parameters and an output schema, the description is thorough. It covers return format, pagination, column details, and usage hints for related tools. No gaps.
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 coverage is 0%, so description fully compensates. It clearly explains each parameter: search (optional, case-insensitive substring match), page (1-based, default 1), limit (default 20, max 100), with examples.
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 tool lists all grids with column definitions, defines 'grids' as spreadsheet-like tables, and distinguishes from siblings by noting it is used to discover grids before calling get_grid_details or run_grid.
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 explains when to use (discover available grids before running them) and how to use the results (grid id for other tools), but does not explicitly state when not to use or mention alternatives beyond the sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rotate_api_keyA
Generate a new workspace API key and immediately invalidate the current one.
WARNING: This action is irreversible. The moment this succeeds, the key used to call it stops working. All integrations must be updated with the new key immediately, and this MCP server must be restarted with the new BITSCALE_API_KEY environment variable.
Returns: {"api_key": "sk-live-newkey..."} — the new workspace API key.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses irreversibility, immediate key stoppage, and need to update integrations and restart server. With no annotations provided, description fully covers behavioral traits.
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?
Concise: two sentences plus return format. Front-loaded with purpose, then warning, then output. Every sentence adds value.
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?
Complete for a parameterless tool. Output schema shown via example, no missing context. Complex behavior (irreversible mutation) fully disclosed.
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?
Zero parameters in schema; description adds no param info, but baseline is 4 for no parameters. Schema coverage is 100% by default.
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?
Description clearly states it generates a new API key and invalidates the current one, with specific verb+resource. Distinct from all sibling tools which handle grid or workspace details.
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?
Explicit warning about immediate invalidation and required updates (integrations, restart). No alternatives to exclude since no other tool rotates keys, but context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
run_gridA
Run a BitScale Grid by appending a new row with the given inputs and triggering all column enrichments.
This is the primary tool for executing BitScale workflows. It adds a row to the grid, runs all enrichment/formula/merge columns, and returns the enriched outputs.
IMPORTANT — inputs vs output_columns use DIFFERENT key formats:
'inputs' uses human-readable LABELS (e.g. "company_name", "website") — these are NOT UUIDs. The labels are derived from the source columns configured on the grid's BitScale API data source. You can find the exact labels in the BitScale app by clicking the Data Source column, selecting the BitScale API source, and looking at the input fields.
'output_columns' uses column UUIDs from get_grid_details to filter which output columns to return.
Before calling this, use get_grid_details to understand the grid schema. To discover the exact input labels, check the grid's API data source panel in the BitScale app, or look at the source column configuration.
Args: grid_id: UUID of the grid to run. Found in grid URL or list_grids. inputs: Key-value map of input LABELS to their values. These are human-readable keys like "company_name", "website", "email" — NOT column UUIDs. Example: {"company_name": "Acme Corp", "website": "acme.com"} mode: Execution mode — "sync" (default) or "async". - sync: waits up to 120 seconds for completion, returns outputs directly. If still processing, returns a request_id to poll with get_run_status. - async: returns a request_id immediately. Poll get_run_status for results. output_columns: Optional list of column UUIDs to include in the response. Use the column 'id' values from get_grid_details. If omitted, all enriched columns are returned. source_id: Optional UUID of a specific BitScale API data source on the grid. If omitted, the first available source is used.
Returns:
sync completed: {mode, status: "completed", outputs: {column_uuid: {value, name}}}
sync timeout or async: {mode, status: "running", request_id, poll_url}
The outputs object keys are column UUIDs, each containing {value, name} where 'name' is the human-readable column display name.
If status is "running", use get_run_status with the returned request_id to poll for completion (every 2-5 seconds).
| Name | Required | Description | Default |
|---|---|---|---|
| grid_id | Yes | ||
| inputs | Yes | ||
| mode | No | sync | |
| output_columns | No | ||
| source_id | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fully discloses behavior: sync mode waits up to 120 seconds, async returns immediately, and the return format includes status transitions. It explains that appending a row triggers enrichments and returns outputs. No contradictions with annotations (none provided).
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 well-structured with sections, bullet points, and a labeled Args list. It is slightly verbose but every sentence adds value. The key differentiation of input vs output key formats is highlighted prominently. Could be tightened slightly, but overall efficient.
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 (5 params including nested objects, output schema, async pattern), the description is nearly exhaustive. It covers prerequisites (get_grid_details), input discovery (BitScale app panel), execution modes, return formats, and polling instructions. It also references sibling tools appropriately.
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 has 0% description coverage, so the description carries full burden. It adds rich meaning to all 5 parameters: explains grid_id origin, inputs key format (human-readable LABELS vs UUIDs) with examples, mode options with behavior, output_columns as optional UUIDs from get_grid_details, and source_id as optional override. It also describes the return object structure.
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 tool's purpose: 'Run a BitScale Grid by appending a new row with the given inputs and triggering all column enrichments.' It uses a specific verb ('Run') and resource ('BitScale Grid'), and distinguishes from siblings like get_grid_details (schema discovery) and get_run_status (polling).
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?
Explicit when-to-use guidance: 'Before calling this, use get_grid_details to understand the grid schema.' It explains sync vs async mode trade-offs, and mentions alternative tools (get_run_status for polling, get_grid_details for schema). It also clarifies when not to use this tool (e.g., need to discover input labels first).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Each tool has a distinct purpose with no overlap: grid listing, details, curl generation, execution, status polling, workspace info, and key rotation are clearly separated.
All tool names use consistent verb_noun snake_case pattern (e.g., get_grid_details, list_grids, rotate_api_key), making predictable and easy to use.
7 tools are well-scoped for a grid enrichment service, covering essential operations without bloat or missing core functionality.
Covers the main workflow: discovery, inspection, execution, status, and admin tasks. Minor gaps like canceling runs or managing data sources are absent but not critical.
Maintenance
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
One workspace of tools for Claude and ChatGPT: connect 600+ apps, generate media, build tools.
Connect Claude to your Platform7n workspaces — chat, links, and tasks. One-click OAuth.
Connect AI assistants to Google Sheets through controlled tools for reading and updating rows.
Run UX research from Claude — create card sort studies, list studies, pull headline stats.
Related MCP Servers
- FlicenseCqualityDmaintenanceConnects Claude AI to Google Sheets, Gmail, and Calendar for comprehensive revenue tracking and business management. Enables lead pipeline management, email handling, calendar scheduling, task tracking, and file operations through natural language.29
- FlicenseNot gradedqualityDmaintenanceEnables interaction with OpenHEXA platform through Claude Desktop, allowing users to query workspaces, list datasets, search pipelines, and view pipeline runs using natural language.1
- AlicenseNot gradedqualityDmaintenanceEnables Claude to read, write, append, and clear data in Google Sheets directly using a Google Cloud Service Account. It provides tools for real-time spreadsheet interaction, including fetching sheet metadata and managing cell ranges through simple commands.178MIT
- FlicenseNot gradedqualityCmaintenanceConnects Claude Desktop to Grist spreadsheets, enabling users to browse documents, tables, and columns through natural language. It supports reading, writing, and querying data using standard record operations or direct SQL queries.
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/featherflow/bitscale-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server