Skip to main content
Glama
penguinszp001

mcp-server-demo

MCP 服务器演示 (Python)

一个从零开始构建的本地 MCP 服务器,包含两个工具:

  • weather(city) → 通过 wttr.in 获取当前天气

  • query_db(sql) → 只读 SQLite SELECT 查询

1) 设置

python -m venv .venv
source .venv/bin/activate
pip install -U pip
pip install -e .

Related MCP server: Swiss Meteo MCP

2) 运行 MCP 服务器

mcp-server-demo

这将启动本地服务器并自动创建包含示例行的 demo.db

3) 快速手动 MCP 检查(可选)

如果你安装了 MCP Inspector:

npx @modelcontextprotocol/inspector

然后连接到你的本地 Python 服务器。

4) OpenAI API 集成选项

  1. 复制 env 文件并填入密钥:

cp .env.example .env
  1. 在一个终端中启动服务器。

  2. 在第二个终端中运行:

python client_openai_api.py

注意:这使用了 OpenAI Responses API,其中 MCP 工具定义指向 http://localhost:8000/mcp

工具行为

weather(city: str)

返回包含温度、体感温度、湿度、风速和简要天气状况的 JSON 摘要字段。

query_db(sql: str)

  • 允许 SELECT ... 查询。

  • 以 JSON 格式返回行数据。

  • 为了此入门演示的安全,拒绝非 SELECT 的 SQL 语句。

项目文件

  • server.py — FastMCP 服务器 + 工具定义。

  • client_openai_api.py — 可以调用 MCP 工具的简单 OpenAI API 调用。

  • pyproject.toml — 依赖项 + 脚本入口点。

Available Tools

10 tools
analyze_image_with_openaiC

Analyze an image file with an OpenAI vision-capable model.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
promptYes
modelNogpt-4.1-mini

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.4/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 full burden. It only states the high-level action without disclosing any behavioral traits (e.g., file size limits, authentication needs, side effects). The existence of an output schema is not mentioned.

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

Conciseness3/5

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

The description is extremely concise at one sentence, but it is under-specified. While it avoids fluff, it sacrifices necessary detail, making it minimally adequate.

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 has 3 parameters with no descriptions and no annotations, the description is insufficient. It does not cover parameter semantics, output, or usage context, leaving significant gaps for an agent.

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

Parameters1/5

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

Schema description coverage is 0%, and the description adds no meaning to the parameters 'path', 'prompt', or 'model'. It does not explain their purpose, format, or constraints, leaving the agent to rely solely on parameter names.

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 tool analyzes an image file with an OpenAI vision-capable model, specifying the verb and resource. However, it does not differentiate from sibling tools like inspect_file, which may have overlapping functionality.

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. It lacks context about prerequisites, suitable scenarios, or when not to use it.

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

inspect_fileC

Return file metadata and content preview for text/csv/image workflows.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
preview_charsNo
include_base64No

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.7/5.0
Behavior2/5

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

With no annotations, the description bears full responsibility for behavioral disclosure. It omits details about metadata fields, preview truncation, handling of non-text files, or effects of parameters like include_base64. The behavioral traits are insufficiently transparent.

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

Conciseness3/5

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

The description is a single concise sentence, but it sacrifices essential detail about parameters and behavioral context. It is neither verbose nor well-structured for clarity.

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 has 3 parameters and no annotations, the description is largely incomplete. It fails to convey how the tool works in various workflows (e.g., image vs. csv), what metadata is returned, or how preview_chars affects output. The presence of an output schema does not excuse the lack of high-level context.

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

Parameters1/5

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

Schema description coverage is 0%, yet the description does not explain any parameter's meaning beyond the schema. Terms like path, preview_chars, and include_base64 are left undefined, forcing reliance on parameter names alone.

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 verb 'return', the resource 'file metadata and content preview', and the context 'for text/csv/image workflows'. It effectively distinguishes from sibling tools like read_file (full content) and list_files (names).

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?

No guidance is provided on when to use inspect_file versus alternatives such as read_file or analyze_image_with_openai. There are no examples or exclusion criteria.

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

list_directoriesC

List directories directly inside a folder within MCP_FILE_OPS_ROOT.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNo.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.7/5.0
Behavior2/5

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

No annotations are provided, so the description must disclose behavioral traits. It states it lists directories directly inside a folder (non-recursive) and within MCP_FILE_OPS_ROOT. However, it omits details like handling of hidden directories, symlinks, error cases, permissions, or return structure.

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

Conciseness4/5

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

The description is a single concise sentence with no wasted words. It is front-loaded and direct, though it could be slightly expanded to include key behavioral details without losing brevity.

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 simplicity and available output schema, the description lacks completeness. It does not mention edge cases, path interpretation (relative/absolute), error handling, or how the tool integrates with sibling tools like list_files. The scope is noted but additional context is missing.

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

Parameters2/5

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

Input schema has one parameter (path) with 0% description coverage. The description adds no additional meaning about the parameter's format, constraints, or default behavior, leaving the agent to infer from the schema alone.

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 tool lists directories directly inside a folder, and scopes it to MCP_FILE_OPS_ROOT. The verb 'List' and resource 'directories' are specific, but it does not distinguish from sibling list_files, though the naming implies the difference.

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?

No guidance on when to use this tool versus alternatives like list_files or inspect_file. No mention of prerequisites, context, or when not to use it.

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

list_filesB

List files directly inside a folder within MCP_FILE_OPS_ROOT.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNo.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/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. It mentions 'directly inside a folder' implying non-recursive listing, but fails to disclose behavior for invalid paths, permissions, or any side effects (though none expected).

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

Conciseness4/5

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

The description is a single, front-loaded sentence with no wasted words. However, it could incorporate more detail without losing conciseness.

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, list operation) and existence of an output schema, the description provides the core functionality but omits edge cases like listing a file path or special folder names. It is minimally adequate but not comprehensive.

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

Parameters2/5

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

The schema has one parameter 'path' with a default of '.', and 0% schema description coverage. The description adds minimal meaning beyond 'folder path', not specifying format, restrictions, or relationship to MCP_FILE_OPS_ROOT.

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 verb 'List' and the resource 'files directly inside a folder within MCP_FILE_OPS_ROOT', distinguishing it from siblings like 'list_directories' which lists directories.

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?

No guidance is provided on when to use this tool versus alternatives like 'list_directories' or 'read_file'. There is no mention of when not to use it or prerequisites.

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

make_directoryC

Create a directory inside MCP_FILE_OPS_ROOT.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.7/5.0
Behavior2/5

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

No annotations provided, so the description carries full burden. It only states the basic action but lacks details on side effects, permissions, return value, or error conditions. For a mutation tool, 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.

Conciseness3/5

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

The description is a single sentence with no waste, but it is too minimal to be highly valuable. It could be slightly expanded without sacrificing conciseness.

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 no annotations and a simple tool, the description should at least explain what the path means, whether it creates parent directories, and what the output schema contains. It falls short.

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

Parameters1/5

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

The description adds no meaning beyond the schema for the single parameter 'path'. With 0% schema description coverage, the user gets no help on expected format, constraints, or examples.

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 action ('Create a directory') and the resource ('inside MCP_FILE_OPS_ROOT'). It is specific and distinguishes from sibling tools like list_directories or move_file.

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?

No guidance on when to use this tool vs alternatives. No mention of prerequisites, such as whether parent directories need to exist or if the path should be absolute/relative.

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

move_fileC

Move a file from source_path to destination_path inside MCP_FILE_OPS_ROOT.

ParametersJSON Schema
NameRequiredDescriptionDefault
source_pathYes
destination_pathYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

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 full burden. It only states 'move' but does not disclose whether overwrite occurs, permission changes, or error handling (e.g., if destination exists).

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

Conciseness4/5

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

Single sentence efficiently conveys core purpose. Could be slightly more structured (e.g., separate line for behavior), but overall concise.

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?

Tool is simple (2 params, no nested objects). Description covers basic action but lacks safety info (overwrite behavior) and output details. Adequate but not thorough.

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

Parameters1/5

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

Schema description coverage is 0%. The description adds no parameter-level details beyond the field names, which are already self-evident from the tool name. For a simple tool, this is insufficient.

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 verb 'move', resource 'file', and specifies the scope 'inside MCP_FILE_OPS_ROOT'. This distinguishes it from sibling tools like 'move_files_by_glob'.

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?

No when-to-use or when-not-to-use guidance is provided. No prerequisites (e.g., source must exist, destination must not exist) are mentioned, 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.

move_files_by_globC

Move all files matching a glob pattern from source_dir into destination_dir.

ParametersJSON Schema
NameRequiredDescriptionDefault
source_dirYes
patternYes
destination_dirYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.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 but only states basic operation. It does not disclose important behavior like conflict handling, directory creation, glob syntax, or partial move risks.

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

Conciseness4/5

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

Single efficient sentence, no unnecessary words. Could include slightly more detail without harming conciseness.

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?

Despite 3 parameters and no annotations, the description omits behavior like overwrite policy, return value (despite output schema existing), and prerequisite checks. Incomplete for a mutation tool.

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

Parameters2/5

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

Schema has 0% coverage, and the description merely names the parameters without adding constraints, formats, or examples. 'source_dir', 'pattern', 'destination_dir' are not explained beyond their names.

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?

Description clearly states the action (move), the resource (files matching a glob pattern), and the source/destination. It effectively distinguishes from sibling 'move_file' which handles single files.

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?

No guidance on when to use this tool versus alternatives like 'move_file' or other file operations. No scenarios or exclusions provided.

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

query_dbA

Run a read-only SELECT query against local SQLite demo.db.

ParametersJSON Schema
NameRequiredDescriptionDefault
sqlYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior4/5

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

With no annotations, the description carries the full burden. It discloses read-only behavior and the SQL query nature. It does not detail error handling or query restrictions, but the core behavioral trait is clear.

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?

A single concise sentence that directly states the tool's function with no unnecessary words or fluff.

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?

While the description covers the basic purpose and the output schema exists, it lacks details on SQL restrictions, parameter specifics, and usage context. Adequate for a simple tool but gaps remain.

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

Parameters2/5

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

Schema description coverage is 0%. The description does not explain the 'sql' parameter beyond the schema's type string. It fails to specify valid SQL syntax, allowed statements, or constraints like single-statement limitation.

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 it runs a read-only SELECT query against a specific local SQLite database, distinguishing it from sibling tools focused on file operations, weather, or image analysis.

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

Usage Guidelines4/5

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

The description explicitly mentions 'read-only SELECT query', implying it should not be used for writes. However, it does not provide explicit when-to-use or when-not-to-use guidance relative to alternatives, though siblings are unrelated.

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

read_fileC

Read a UTF-8 text file inside MCP_FILE_OPS_ROOT.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

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

No annotations provided, so full burden falls on description. It only states 'read' without disclosing behavior on non-UTF-8 files, missing files, or permissions. Significant gap.

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

Conciseness3/5

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

The description is one sentence, front-loaded, and contains no redundancy. However, it is overly terse, sacrificing completeness for brevity.

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 existence of an output schema (not shown here), the description needn't detail returns, but it lacks information on error conditions, encoding specifics, or performance. Adequate for a simple tool but not fully complete.

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

Parameters2/5

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

Schema description coverage is 0%, so description must compensate. It only notes the file is inside MCP_FILE_OPS_ROOT but does not clarify path format, relative vs absolute, or allowed special characters.

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 action (read), the resource (UTF-8 text file), and the scope (inside MCP_FILE_OPS_ROOT). It distinguishes from sibling tools like inspect_file and list_files.

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?

No guidance on when to use this tool versus alternatives such as inspect_file or list_files. Agent receives no context about appropriate use cases or limitations.

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

weatherB

Return current weather for a city using wttr.in.

ParametersJSON Schema
NameRequiredDescriptionDefault
cityYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

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

No annotations exist, so the description must fully disclose behavior. It only states the basic function, omitting details like error handling, data freshness, rate limits, or reliance on an external API.

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

Conciseness4/5

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

The description is one sentence of 10 words, very concise. However, it may be too brief given the lack of other documentation; a slightly longer description could improve clarity.

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?

For a simple one-parameter tool with an output schema, the description is minimally adequate. However, it fails to provide usage guidelines or behavioral context, leaving gaps for an agent.

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

Parameters2/5

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

The single parameter 'city' has no schema description (0% coverage) and the description adds no extra meaning, such as acceptable formats, examples, or whether coordinates are accepted.

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 it returns current weather for a city using a specific service (wttr.in). It distinguishes itself from sibling tools which handle files and databases.

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?

No guidance is provided on when to use this tool or alternatives. While no other weather tools exist, the description lacks any context about prerequisites or appropriate use cases.

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. 10 tool updatesv0.1.0
    • First observedanalyze_image_with_openai
    • First observedinspect_file
    • First observedlist_directories
    • First observedlist_files
    • First observedmake_directory
    • First observedmove_file
    • First observedmove_files_by_glob
    • First observedquery_db
    • First observedread_file
    • First observedweather

TDQS

C2.9/5.0

Scored across 10 tools

Disambiguation4/5

Most tools have distinct purposes, but there is some overlap between inspect_file and read_file (both provide file content), and move_file vs move_files_by_glob are similar in name and action.

Naming Consistency4/5

Majority follow verb_noun pattern with underscores, but 'weather' is a lone noun and 'analyze_image_with_openai' is verbose and breaks the pattern.

Tool Count4/5

10 tools is a reasonable number, but the server covers multiple unrelated domains (files, DB, weather, image), making it feel a bit scattered.

Completeness2/5

File operations lack delete/copy, DB only has read-only query, weather and image analysis are single-tool services. The surface is incomplete for any single domain.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • F
    license
    C
    quality
    D
    maintenance
    An experimental MCP server that provides weather information tools, including temperature lookup via wttr.io, along with note-taking capabilities for learning MCP server development with GitHub Copilot.
    3
    -
  • F
    license
    Not graded
    quality
    D
    maintenance
    A demo MCP server that provides AI assistants access to live US weather data via the free National Weather Service API, offering forecast and alert tools without requiring an API key.
    -
  • F
    license
    Not graded
    quality
    D
    maintenance
    A lightweight MCP server providing tools for adding integers, getting current time, and fetching weather forecasts via wttr.in.
    -