Skip to main content
Glama
mlstudios-ai

MCP Mix Server

by mlstudios-ai

MCP Server/Client Example

The server is a modified implementation following tutorial from Medium by Alex Merced.

The custom client is an implementation from Anthropic quickstart tutorial Build an MCP Client.

MCP Server

Navigate to your project directory, run these commands in the terminal.

source .venv/bin/activate

uv --directory . run mcp_server/main.py

NOTE: There are no outputs from the terminal - it's normal.

MCP Client

Claude Desktop

On MacOS or Linx, add the following entry to ~/Library/Application Support/Claude/claude_desktop_config.json

For Windows, add the following entry to %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "mcp-mix-server": {
      "command": "uv",
      "args": [
        "--directory",
        "{ABSOLUTE_PATH}/mcp-mix-server",
        "run",
        "mcp_server/main.py"
      ]
    }
  }
}

Verify server registery

  1. Click on "Searches and tools" option.

2. Click on "mcp-mix-server", you should see the listed tools 3. Test with the following queries: - “Summarize the CSV file named sample.csv.” - “How many rows are in sample.parquet?”

Related MCP server: Excel MCP Server

Custom MCP client

Alternatively, use a custom client in mcp_client/ implemented following the Anthropic quickstart tutorial Build an MCP Client.

Create a .env file in the root folder and put your Athropic API access key in there. To obtain the API access key, login your Anthropic account and following instructions.

ANTHROPIC_API_KEY=<your_api_access_key>

You can always use your own reasoning model. But this repo is very basic to demonstrate how MCP Server/Client works so we stick with Claude.

When starting the client, it will automatically start the server in stdio transport mode. This means the client access the server locally, not remotely, which uses SSE transport mode. There is no need run the server script separately.

To run the custom client:

uv run mcp_client/client.py mcp_server/main.py

Test with the following queries:

  • “Summarize the CSV file named sample.csv.”

  • “How many rows are in sample.parquet?”

  • or type "quit" to exit

Available Tools

2 tools
summarize_csv_fileA

Summarise a CVS file by reporting its number of rows and columns.

Args: filename (str): Name of the CSV file in the /data directory.

Returns: str: A string describing the file's dimensions.

ParametersJSON Schema
NameRequiredDescriptionDefault
filenameYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.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 it states what the tool does (summarize dimensions), it doesn't mention important behavioral aspects like error handling, file size limits, permission requirements, or whether it modifies the file. For a file operation tool with zero annotation coverage, this leaves significant behavioral questions unanswered.

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 perfectly structured and concise: a clear purpose statement followed by well-organized Args and Returns sections. Every sentence earns its place, with no redundant information. The formatting makes it easy to scan and understand quickly.

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?

Given the tool's simple functionality (single parameter, clear output), the description is mostly complete. The output schema exists (Returns section specifies string output), so the description doesn't need to explain return values. However, for a file operation tool with no annotations, it could benefit from mentioning basic behavioral constraints like error conditions.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage (the schema only provides type and title), the description fully compensates by clearly explaining the single parameter's purpose, format constraints ('Name of the CSV file'), and location context ('in the /data directory'). This adds substantial meaning beyond what the bare schema provides.

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 ('summarize'), the resource ('CSV file'), and the exact output ('reporting its number of rows and columns'). It distinguishes from the sibling 'summarize_parquet_file' by specifying CSV format. This is a precise verb+resource statement with 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 Guidelines3/5

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

The description implies usage context through the Args section mentioning '/data directory', but doesn't explicitly state when to use this tool versus 'summarize_parquet_file' or other alternatives. It provides basic operational context but lacks explicit guidance on tool selection criteria or exclusions.

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

summarize_parquet_fileA

Summarise a Parquet file by reporting its number of rows and columns.

Args: filename (str): Name of the Parquet file in the /data directory.

Returns: str: A string describing the file's dimensions.

ParametersJSON Schema
NameRequiredDescriptionDefault
filenameYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden. It discloses the tool's behavior by stating it reports dimensions (rows/columns) and returns a string, but lacks details on error handling (e.g., if file doesn't exist), performance, or any side effects. It adds basic context but misses deeper 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.

Conciseness5/5

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

The description is front-loaded with the core purpose in the first sentence, followed by structured Args and Returns sections. Every sentence earns its place by providing essential information without redundancy, making it efficient and well-organized.

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?

Given the tool's low complexity (1 parameter, no nested objects) and the presence of an output schema (which covers return values), the description is mostly complete. It explains what the tool does, the parameter's semantics, and the return type, but could improve by addressing error cases or usage vs. siblings.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema description coverage is 0%, so the description must compensate. It adds meaning by specifying that 'filename' is the name of a Parquet file in the '/data directory', which clarifies the parameter's context beyond the schema's generic 'Filename' title. However, it doesn't detail format constraints (e.g., file extensions).

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 ('Summarise a Parquet file') and what it reports ('number of rows and columns'), distinguishing it from the sibling tool 'summarize_csv_file' which presumably handles CSV files. The verb+resource+scope combination is precise and unambiguous.

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 through the mention of 'Parquet file' and '/data directory', suggesting it's for Parquet files in that location, but doesn't explicitly state when to use this vs. the sibling CSV tool or any alternatives. No explicit exclusions or prerequisites are provided.

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. 2 tool updatesv1.0.0
    • First observedsummarize_csv_file
    • First observedsummarize_parquet_file

TDQS

A3.9/5.0
Disambiguation5/5

The two tools have clearly distinct purposes: one handles CSV files and the other handles Parquet files. There is no overlap or ambiguity in their functionality, as each is specialized for a different file format.

Naming Consistency5/5

Both tools follow a consistent verb_noun pattern with 'summarize' as the verb and the file type as the noun (csv_file, parquet_file). The naming is perfectly uniform and predictable across the set.

Tool Count2/5

With only 2 tools, the server feels thin for a 'Mix Server' that implies broader data processing capabilities. The scope is limited to summarizing two specific file formats, which may not justify the server's name or provide comprehensive coverage for data analysis tasks.

Completeness2/5

The tool surface is severely incomplete for data processing. It only offers summarization for CSV and Parquet files, lacking essential operations like reading, writing, filtering, transforming, or handling other common formats (e.g., JSON, Excel). This will likely cause agent failures in broader workflows.

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

  • F
    license
    C
    quality
    D
    maintenance
    A powerful MCP (Model Control Protocol) server that provides tools for manipulating and analyzing Parquet files. This server is designed to work with Claude Desktop and offers four main functionalities:
    2
    2
    -
  • A
    license
    A
    quality
    C
    maintenance
    An open-source MCP server that connects to various data sources (SQL databases, CSV, Parquet files), allowing AI models to execute SQL queries and generate data visualizations for analytics and business intelligence.
    12
    75
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    An MCP server that provides comprehensive PDF processing capabilities including text extraction, image extraction, table detection, annotation extraction, metadata retrieval, page rendering, and document structure analysis.
    -

Appeared in Searches

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/mlstudios-ai/mcp-mix-server'

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