Skip to main content
Glama
parikshitBoxtalk

Boxtalk Data MCP Server

Boxtalk Data MCP Server

A Model Context Protocol (MCP) server that provides SQL Server database operations with pagination, table structure inspection, and record counting capabilities.

Features

  • Get Table Data: Retrieve paginated data from any SQL Server table

  • Get Record Count: Get the total number of records in a table

  • Get Table Structure: View table schema including columns, data types, primary keys, and foreign keys

  • Configurable Connection: Easy database configuration via JSON file

  • Enforced Pagination: Prevents large data dumps with configurable page sizes (max 1000 records per page)

Related MCP server: mcp-sqlserver-readonly

Prerequisites

  • Node.js (v16 or higher)

  • SQL Server database (local or remote)

  • Database credentials with read access

Installation

  1. Clone or navigate to this directory

  2. Install dependencies:

npm install
  1. Create your configuration file:

cp config.example.json config.json
  1. Edit config.json with your database credentials:

{
  "database": {
    "user": "your_username",
    "password": "your_password",
    "server": "localhost",
    "database": "your_database_name",
    "options": {
      "encrypt": true,
      "trustServerCertificate": false,
      "enableArithAbort": true
    },
    "pool": {
      "max": 10,
      "min": 0,
      "idleTimeoutMillis": 30000
    }
  }
}

Configuration Options

  • user: SQL Server username

  • password: SQL Server password

  • server: SQL Server hostname or IP address

  • database: Database name

  • options.encrypt: Enable encryption (recommended for production)

  • options.trustServerCertificate: Set to true for local development with self-signed certificates

  • pool.max: Maximum number of connections in the pool

  • pool.min: Minimum number of connections in the pool

  • pool.idleTimeoutMillis: Time before idle connections are closed

Alternative Configuration

You can also specify a custom configuration file path using the DB_CONFIG_PATH environment variable:

DB_CONFIG_PATH=/path/to/custom/config.json node index.js

Usage with Claude Desktop

To use this MCP server with Claude Desktop, add it to your Claude Desktop configuration file:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json Windows: %APPDATA%/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "boxtalk-data": {
      "command": "node",
      "args": ["/path/to/boxtalk-data-mcp/index.js"],
      "env": {
        "DB_CONFIG_PATH": "/path/to/boxtalk-data-mcp/config.json"
      }
    }
  }
}

After adding the configuration, restart Claude Desktop.

Available Tools

1. get_table_data

Retrieve paginated data from a SQL Server table.

Parameters:

  • table (required): Table name (e.g., "Users" or "dbo.Users")

  • page (optional): Page number, defaults to 1

  • pageSize (optional): Records per page (1-1000), defaults to 100

  • orderBy (optional): Column to order by, defaults to first column

Example:

Get the first 50 records from the Users table, ordered by UserId

2. get_table_count

Get the total count of records in a table.

Parameters:

  • table (required): Table name (e.g., "Users" or "dbo.Users")

Example:

How many records are in the Orders table?

3. get_table_structure

Get the structure/schema of a table including columns, data types, and constraints.

Parameters:

  • table (required): Table name (e.g., "Users" or "dbo.Users")

Example:

Show me the structure of the Products table

Testing

You can test the server using the MCP inspector:

npm install -g @modelcontextprotocol/inspector
mcp-inspector node index.js

Security Considerations

  • Never commit config.json to version control

  • Use strong database passwords

  • Grant only necessary permissions to the database user

  • Enable encryption for production environments

  • Consider using environment variables for sensitive credentials

Troubleshooting

Connection Errors

If you encounter connection errors:

  1. Verify SQL Server is running and accessible

  2. Check firewall settings allow connection on SQL Server port (default 1433)

  3. Confirm credentials are correct

  4. For local development with self-signed certificates, set trustServerCertificate: true

Authentication Issues

For Windows Authentication, modify config.json:

{
  "database": {
    "server": "localhost",
    "database": "your_database_name",
    "options": {
      "trustedConnection": true,
      "encrypt": true,
      "trustServerCertificate": true
    }
  }
}

Table Not Found

Ensure you specify the correct schema (e.g., "dbo.TableName" instead of just "TableName").

License

MIT

Available Tools

4 tools
get_table_countB

Get the total count of records in a SQL Server table.

ParametersJSON Schema
NameRequiredDescriptionDefault
tableYesThe name of the table to count (can include schema, e.g., 'dbo.Users')

TDQS

B3.1/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 counts records, implying a read-only operation, but does not cover aspects like performance impact, error handling, or whether it requires specific permissions. This leaves gaps in understanding the tool's behavior beyond its basic function.

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 directly states the tool's function without unnecessary words. It is front-loaded and efficiently conveys the essential information, making it highly concise and well-structured.

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

Completeness3/5

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

Given the tool's simplicity (one parameter, no output schema, no annotations), the description adequately covers the basic purpose. However, it lacks details on usage context, behavioral traits, and output format, which could be important for an AI agent to invoke it correctly in more complex scenarios.

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, fully documenting the single 'table' parameter. The description does not add any extra meaning beyond the schema, such as format examples or constraints, so it meets the baseline score when the schema handles parameter documentation effectively.

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 the total count') and resource ('records in a SQL Server table'), making the purpose immediately understandable. It does not explicitly differentiate from sibling tools like 'get_table_data' or 'query_data', which might also involve table operations, so it misses the highest score for sibling distinction.

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 such as 'get_table_data' or 'query_data'. It lacks context about prerequisites, exclusions, or specific scenarios where counting records is preferred over other table-related operations.

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

get_table_dataC

Get paginated data from a SQL Server table. Returns a specified page of records with pagination enforced.

ParametersJSON Schema
NameRequiredDescriptionDefault
tableYesThe name of the table to query (can include schema, e.g., 'dbo.Users')
pageNoPage number (1-based). Defaults to 1.
pageSizeNoNumber of records per page. Must be between 1 and 1000. Defaults to 100.
orderByNoColumn name to order by. Defaults to first column if not specified.

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states that the tool returns paginated data with enforced pagination, which implies read-only behavior and some constraints, but lacks details on permissions, error handling, rate limits, or what 'enforced pagination' entails (e.g., server-side enforcement). This is a significant gap 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 front-loaded and concise, consisting of two clear sentences that efficiently convey the core functionality without unnecessary details. Every sentence earns its place by stating the action and key behavioral trait (pagination enforcement).

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, and no annotations), the description is incomplete. It lacks information on return values (e.g., data format, pagination metadata), error cases, and behavioral nuances like authentication needs or performance limits. This makes it inadequate for a tool that interacts with a database and handles pagination.

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 already documents all parameters thoroughly. The description adds minimal value beyond the schema by mentioning 'paginated data' and 'pagination enforced,' which aligns with the 'page' and 'pageSize' parameters but doesn't provide additional syntax or format details. 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 ('Get paginated data') and resource ('from a SQL Server table'), making the purpose specific and understandable. However, it doesn't explicitly differentiate from sibling tools like 'get_table_count' or 'query_data', which likely serve different purposes (e.g., counting rows vs. flexible querying).

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_table_count' (for counts) or 'query_data' (for more complex queries). It mentions pagination but doesn't clarify scenarios where this tool is preferred over siblings, leaving usage context implied at best.

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

get_table_structureA

Get the structure/schema of a SQL Server table including column names, data types, and constraints.

ParametersJSON Schema
NameRequiredDescriptionDefault
tableYesThe name of the table (can include schema, e.g., 'dbo.Users')

TDQS

A3.7/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It describes the tool's purpose and output content, but does not disclose behavioral traits such as permissions required, whether it's read-only (implied by 'Get'), error handling, or performance considerations. The description adds basic context but lacks depth 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, well-structured sentence that efficiently conveys the tool's purpose and output details without unnecessary words. It is front-loaded with the core action and resource, making it easy to understand at a glance.

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

Completeness3/5

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

Given no annotations and no output schema, the description provides a clear purpose and output content, but lacks details on behavioral aspects like error handling or return format. It is complete enough for a simple read operation but could benefit from more context to compensate for the absence of structured metadata.

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%, with the input schema fully documenting the single 'table' parameter. The description does not add any parameter-specific semantics beyond what the schema provides, such as format examples or constraints. Baseline score of 3 is appropriate since the schema handles parameter documentation adequately.

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

Purpose5/5

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

The description clearly states the specific action ('Get') and resource ('structure/schema of a SQL Server table'), with precise details about what information is retrieved ('column names, data types, and constraints'). It effectively distinguishes this from sibling tools like get_table_count, get_table_data, and query_data by focusing on metadata rather than row counts, data content, or custom queries.

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

Usage Guidelines3/5

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

The description implies usage for obtaining table metadata, but does not explicitly state when to use this tool versus alternatives like get_table_data for actual data or query_data for custom queries. It provides some context by specifying the resource type (SQL Server table), but lacks explicit guidance on prerequisites or exclusions.

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

query_dataA

Execute a SELECT query on the SQL Server database with enforced pagination. Only SELECT queries are allowed - DDL and DML operations (CREATE, ALTER, DROP, INSERT, UPDATE, DELETE, etc.) are rejected.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesThe SELECT query to execute. Must be a SELECT statement. Do not include OFFSET/FETCH clauses as pagination is automatically applied.
pageNoPage number (1-based). Defaults to 1.
pageSizeNoNumber of records per page. Must be between 1 and 1000. Defaults to 100.

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations provided, the description carries full burden and does well by disclosing key behavioral traits: enforced pagination, query type restrictions (only SELECT allowed), automatic pagination handling, and rejection behavior for non-SELECT queries. It doesn't mention error handling, timeout behavior, or result format details.

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

Conciseness5/5

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

Two sentences with zero waste - first sentence states purpose and key constraint, second sentence provides critical usage restriction. Every word earns its place and the most important information is front-loaded.

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

Completeness4/5

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

For a database query tool with no annotations and no output schema, the description provides good coverage of purpose, restrictions, and behavioral context. It could be more complete by mentioning result format, error handling, or connection/authentication requirements, but covers the essential aspects well.

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 all parameters thoroughly. The description adds some context about pagination being 'automatically applied' and query restrictions, but doesn't provide additional parameter semantics beyond what's in the schema descriptions.

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

Purpose5/5

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

The description clearly states the specific action ('Execute a SELECT query') and resource ('SQL Server database'), and distinguishes it from siblings by specifying it's for arbitrary SELECT queries rather than table-specific operations like get_table_data or get_table_structure.

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

Usage Guidelines5/5

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

Explicitly states when to use this tool ('Execute a SELECT query') and when not to use it ('DDL and DML operations... are rejected'), providing clear alternatives for non-SELECT operations. It also distinguishes from sibling tools by being for arbitrary queries rather than predefined table operations.

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.

  1. 4 tool updatesv1.0.0
    • First observedget_table_count
    • First observedget_table_data
    • First observedget_table_structure
    • First observedquery_data

TDQS

A3.7/5.0

Scored across 4 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: get_table_count retrieves record counts, get_table_data fetches paginated records, get_table_structure provides schema information, and query_data executes custom SELECT queries. There is no overlap or ambiguity between these functions, making tool selection straightforward for an agent.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern (get_table_count, get_table_data, get_table_structure, query_data). The naming is uniform and predictable, with 'get_' prefix for three tools and 'query_' for the fourth, both clearly indicating actions on data resources.

Tool Count5/5

With 4 tools, this server is well-scoped for its purpose of SQL Server data access. Each tool earns its place by covering essential operations: counting, retrieving, inspecting structure, and querying data. The count is neither too sparse nor bloated, fitting the domain appropriately.

Completeness4/5

The toolset provides strong coverage for read-only data access, including counts, paginated data, schema, and custom queries. However, there are minor gaps, such as no tools for metadata operations (e.g., listing tables or databases) or handling non-SELECT queries, which agents might need to work around for broader database interactions.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

  • Draxlr's remote MCP server connects AI assistants to your SQL databases and dashboards. Explore schemas, run read-only queries, manage saved queries and dashboards, and export results, all with row-level security so each user sees only their own data.

  • 2,000+ MCP servers read at source level. Know what one does before you connect. Free, no key.

  • The Instant MCP server is a wrapper around the Instant Platform SDK that enables creating, managing, and updating InstantDB applications directly within an editor. It provides tools for fetching rules files for LLMs, retrieving and pushing app schemas, managing permission rules, and executing database queries. Key capabilities include schema management (get-schema, push-schema), permission management (get-perms, push-perms), query execution, and listing recent query history.

  • MCP server for managing Prisma Postgres.

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    MCP server for SQL Server database interactions, providing tools to list databases, get schema, and execute parameterized SELECT queries.
    10 npm
    1
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Read-only SQL Server MCP server enabling safe database queries, table listing, and schema inspection with built-in security protections.
    MIT