Skip to main content
Glama

MCP 툴킷 서버


개요

MCP 툴킷 서버는 Claude, ChatGPT 및 기타 LLM 에이전트가 데이터베이스, 외부 API, 파일 시스템 등과 상호 작용할 수 있는 풍부한 도구 세트를 제공하는 프로덕션급 Model Context Protocol (MCP) 서버로, 에이전트 AI 시대에 직접적으로 기여합니다.

TypeScript와 공식 @modelcontextprotocol/sdk로 구축된 이 서버는 로컬 stdio 프로세스로 실행되며 Claude Desktop, MCP Inspector 또는 모든 MCP 호환 클라이언트와 원활하게 통합됩니다.


Related MCP server: MCP Toolkit

기능 및 도구

도구

설명

사용 예시

db_query

SQLite에 대한 SQL 쿼리 실행 (데모 DB를 사용한 탐색 모드 또는 파일 모드)

"이번 달에 주문한 모든 사용자를 보여줘"

api_call

사용자 지정 헤더, 매개변수 및 본문을 사용하여 모든 REST API에 HTTP 요청 수행

날씨 API에서 데이터 가져오기, 웹훅 전송

file_read

로컬 파일 시스템에서 파일 내용 읽기

설정 파일 읽기, 로그 검사

file_write

파일에 내용 쓰기 (상위 디렉터리 자동 생성)

생성된 코드 저장, 데이터 내보내기

file_list

선택적 재귀 목록 및 필터링을 사용하여 파일/디렉터리 나열

프로젝트 구조 탐색

calculator

수학 식을 안전하게 평가 (eval 사용 안 함)

복리 계산, 단위 변환

get_datetime

시간대 지원과 함께 현재 날짜/시간 가져오기

타임스탬프 로깅, 일정 관리

json_parser

JSON 데이터 구문 분석, 유효성 검사, 쿼리 및 요약

API 응답에서 필드 추출

text_transform

17개 이상의 텍스트 작업: 대소문자 변환, 슬러그, base64, 이메일/URL 추출, 단어 수 계산

데이터 정리, 텍스트 정규화

get_environment

서버 환경 정보 가져오기 (OS, CPU, 메모리, Node.js 버전)

디버그, 컨텍스트 인식


빠른 시작

사전 요구 사항

  • Node.js >= 18.0.0

  • npm >= 9.0.0

설치

# Clone the repository
git clone https://github.com/vyshnavi-nandyala/mcp-toolkit-server.git
cd mcp-toolkit-server

# Install dependencies
npm install

# Build the TypeScript project
npm run build

Claude Desktop 구성

Claude Desktop 구성 파일에 서버를 추가하세요:

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

{
  "mcpServers": {
    "toolkit": {
      "command": "node",
      "args": ["/absolute/path/to/mcp-toolkit-server/dist/index.js"]
    }
  }
}

/absolute/path/to/mcp-toolkit-server를 사용 중인 머신의 실제 경로로 바꾸세요.

Claude Desktop을 다시 시작하면 입력 영역에 🔨 아이콘이 표시되며, 도구를 사용할 준비가 완료됩니다!

MCP Inspector와 함께 사용 (디버깅)

npx @modelcontextprotocol/inspector node dist/index.js

이 명령은 각 도구를 수동으로 테스트하고, 요청/응답 페이로드를 검사하며, 문제를 디버깅할 수 있는 웹 UI를 엽니다.


사용 예시

DB 쿼리 — 데모 데이터베이스 탐색

Claude에게 질문하세요:

"데모 데이터베이스에서 가격 기준 상위 5개 제품을 보여줘."

Claude는 db_query 도구를 사용합니다:

{
  "sql": "SELECT name, category, price FROM products ORDER BY price DESC LIMIT 5"
}

API 호출 — 날씨 데이터 가져오기

Claude에게 질문하세요:

"샌프란시스코의 현재 날씨는 어때?"

Claude는 api_call 도구를 사용합니다:

{
  "url": "https://api.open-meteo.com/v1/forecast?latitude=37.7749&longitude=-122.4194&current_weather=true",
  "method": "GET"
}

파일 작업

Claude에게 질문하세요:

"내 프로젝트의 모든 TypeScript 파일을 나열하고 메인 진입점을 읽어줘."

Claude는 file_list → file_read를 체인으로 연결합니다:

{ "dirPath": "/path/to/project", "extension": ".ts", "recursive": true }
{ "filePath": "/path/to/project/src/index.ts" }

JSON 파싱

Claude에게 질문하세요:

"이 JSON을 파싱해서 첫 번째 사용자의 이메일을 추출해줘: {"users":[{"email":"alice@example.com"},{"email":"bob@example.com"}]}"

{
  "json": "{\"users\":[{\"email\":\"alice@example.com\"}]}",
  "operation": "query",
  "path": "users[0].email"
}

텍스트 변환

Claude에게 질문하세요:

"이것을 camelCase와 슬러그로 변환해줘: 'My Project Name'"

{ "text": "My Project Name", "operation": "camelcase" }
// → "myProjectName"

{ "text": "My Project Name", "operation": "slug" }
// → "my-project-name"

아키텍처

mcp-toolkit-server/
├── src/
│   ├── index.ts                  # Entry point — creates and starts the MCP server
│   ├── tools/
│   │   ├── db-query.ts           # SQLite query tool (explore + file modes)
│   │   ├── api-call.ts           # HTTP request tool (fetch-based)
│   │   ├── file-operations.ts    # file_read, file_write, file_list
│   │   ├── calculator.ts         # Safe math expression evaluator
│   │   ├── datetime.ts           # Date/time with timezone support
│   │   ├── json-parser.ts        # Parse, query, validate, summarize JSON
│   │   ├── text-transform.ts     # 17+ text manipulation operations
│   │   └── environment.ts        # System environment info
│   └── utils/
│       └── helpers.ts            # Shared response-building utilities
├── tests/
│   └── tools.test.ts             # Unit tests (vitest)
├── package.json
├── tsconfig.json
└── README.md

설계 원칙

  1. 안전 우선 — SQL 인젝션 방지, eval() 사용 금지, DB 쿼리에 대한 읽기 전용 기본값

  2. 모듈화 — 각 도구는 독립적인 모듈이며, 도구 추가/제거가 용이함

  3. 타입 지정 — 입력 유효성 검사를 위한 Zod 스키마가 포함된 완전한 TypeScript

  4. 관찰 가능성 — 메타데이터(타이밍, 개수, 유형)가 포함된 구조화된 JSON 응답

  5. 개발자 친화적 — MCP Inspector 지원, 포괄적인 README, 단위 테스트


사용자 지정 도구 추가

새 도구를 추가하는 것은 간단합니다:

// src/tools/my-custom-tool.ts
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
import { z } from "zod";

export function registerMyCustomTool(server: McpServer): void {
  server.tool(
    "my_custom_tool",
    "Description of what this tool does.",
    {
      param1: z.string().describe("First parameter."),
      param2: z.number().optional().describe("Optional second parameter."),
    },
    async ({ param1, param2 }) => {
      // Your logic here
      return {
        content: [
          { type: "text", text: JSON.stringify({ result: "..." }, null, 2) },
        ],
      };
    }
  );
}

그런 다음 src/index.ts에 등록하세요:

import { registerMyCustomTool } from "./tools/my-custom-tool.js";
// ...
registerMyCustomTool(this.server);

개발

# Run in development mode (no build step needed)
npm run dev

# Build for production
npm run build

# Run tests
npm test

# Watch tests
npm run test:watch

# Lint
npm run lint

이것이 중요한 이유: 에이전트 AI의 물결

MCP(Model Context Protocol)는 Claude와 같은 AI 에이전트가 외부 도구, 데이터 소스 및 서비스와 상호 작용할 수 있게 해주는 개방형 표준입니다. 채팅 창에 국한되지 않고, MCP 서버는 에이전트에게 다음과 같은 능력을 부여합니다:

  • 자연어로 데이터베이스 쿼리

  • 실시간 데이터를 가져오기 위한 외부 API 호출

  • 로컬 파일 시스템에서 파일 읽기 및 쓰기

  • 계산 및 데이터 변환 수행

  • 도구를 체인으로 연결하여 다단계 워크플로 구성

이 서버는 그러한 비전을 구체적이고 프로덕션 준비가 완료된 방식으로 구현한 것으로, Claude를 대화형 AI에서 실제 세계와 상호 작용할 수 있는 실행 가능한 에이전트로 변환하는 툴킷입니다.


라이선스

MIT 라이선스. 자세한 내용은 LICENSE를 참조하세요.

Available Tools

10 tools
api_callA

Make an HTTP request to any external API endpoint and return the response.

Supported features:

  • All HTTP methods: GET, POST, PUT, PATCH, DELETE, HEAD, OPTIONS

  • Custom headers (including Authorization / Bearer tokens)

  • JSON and form-urlencoded request bodies

  • URL query parameters (via url or params)

  • Configurable timeout (default 15 seconds)

  • Response includes status code, headers, and body

Use cases:

  • Fetching data from REST APIs

  • Sending webhooks

  • Querying third-party services (weather, maps, etc.)

  • Testing and debugging API endpoints

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesThe full URL to send the request to.
methodNoHTTP method to use.GET
headersNoHTTP headers to include (key-value pairs).
bodyNoRequest body. Can be a JSON object (sent as application/json) or a string.
paramsNoQuery parameters to append to the URL (key-value pairs).
timeoutNoRequest timeout in milliseconds (1,000–60,000).

TDQS

A4.2/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 supported methods, custom headers, body types, query parameters, configurable timeout, and response components (status, headers, body). However, it omits details on error handling, redirects, and authentication, which are important for an HTTP tool.

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 concise and well-structured: opening sentence states purpose, followed by bulleted features and use cases. Every sentence adds value, with no redundant information.

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?

The tool has no output schema, so the description's mention of 'status code, headers, and body' provides essential but minimal output structure. It covers input features thoroughly. Slightly more detail on output format or error cases would improve completeness.

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% coverage with detailed descriptions. The description adds overall context (e.g., supported features, body sent as application/json) but does not significantly enhance individual parameter understanding beyond the schema. Baseline 3 is appropriate.

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 tool's purpose: 'Make an HTTP request to any external API endpoint and return the response.' It lists supported HTTP methods, features, and use cases, effectively distinguishing it from sibling tools (e.g., calculator, db_query) which serve different internal functions.

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 provides clear use cases (fetching REST APIs, webhooks, third-party services) implying when to use the tool. However, it does not explicitly state when not to use it or compare with alternatives, leaving some ambiguity for edge cases.

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

calculatorA

Evaluate a mathematical expression and return the result.

Supported operations:

  • Arithmetic: +, -, *, /, %, **

  • Parentheses for grouping: (2 + 3) * 4

  • Common functions: abs, ceil, floor, round, sqrt, min, max

  • Constants: PI, E

Safety:

  • Does NOT use eval() — uses a safe expression parser

  • Rejects any non-mathematical input

Examples:

  • "2 + 3 * 4" → 14

  • "(2 + 3) * 4" → 20

  • "sqrt(144)" → 12

  • "round(3.14159, 2)" → 3.14

  • "max(10, 20, 30)" → 30

ParametersJSON Schema
NameRequiredDescriptionDefault
expressionYesThe mathematical expression to evaluate (e.g., '2 + 3 * 4').

TDQS

A4.7/5.0
Behavior5/5

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

The description discloses safety (no eval, safe parser), supported operations, and rejection of non-mathematical input. Since no annotations are provided, the description carries full burden and does so well.

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 well-structured with a clear purpose, organized sections for operations, safety, and examples. It is concise without unnecessary verbosity.

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?

The description is largely complete but does not explicitly state the return type (number). Given the simplicity of the tool, this omission is minor but prevents a perfect score.

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?

The description adds extensive meaning beyond the schema: it lists supported operations, functions, constants, and provides examples. The schema only describes the parameter as a string, while the description enriches it with context.

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 tool evaluates mathematical expressions and returns a result. It is distinct from siblings which handle API calls, database queries, file operations, etc.

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 implicitly indicates when to use the tool (for math problems) and gives safety guidelines. However, it does not explicitly contrast with siblings or specify 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.

db_queryA

Execute a SQL query against a SQLite database and return the results.

Modes:

  • "explore" (default): Uses a built-in in-memory demo database pre-loaded with sample tables (users, products, orders). Great for quick testing.

  • "file": Queries a user-specified SQLite file on disk.

Security:

  • In "explore" mode only SELECT statements are allowed.

  • In "file" mode only SELECT, EXPLAIN, and WITH ... SELECT are allowed.

  • DML/DDL (INSERT, UPDATE, DELETE, DROP, etc.) will be rejected.

Returns:

  • rows: array of objects

  • rowCount: number of rows returned

  • columns: list of column names

ParametersJSON Schema
NameRequiredDescriptionDefault
sqlYesThe SQL SELECT statement to execute.
modeNoUse "explore" for the built-in demo DB, or "file" to query a specific SQLite file.explore
dbPathNoPath to a .db/.sqlite file (required when mode is 'file').
limitNoMaximum number of rows to return (1–1000).

TDQS

A4.5/5.0
Behavior4/5

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

No annotations provided, so the description carries full burden. Discloses security restrictions, return format, and mode-specific behaviors. Could mention if any side effects occur, but overall transparent.

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?

Well-structured with clear sections (modes, security, returns). Every sentence adds value without unnecessary verbosity.

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

Completeness5/5

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

Comprehensively covers parameters, modes, security, and return format. With no output schema, the description explains the output structure, making it complete for selecting and invoking the tool.

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?

Schema coverage is 100%, so baseline is 3. Description adds context about modes and security beyond schema, explaining how 'explore' and 'file' modes behave, which aids parameter understanding.

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?

Clearly states it executes SQL queries against SQLite databases with two modes ('explore' and 'file'). Distinguishes from siblings like 'api_call' and 'calculator' as a database query tool.

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?

Specifies when to use each mode and outlines security restrictions (allowed SQL statements per mode). Does not explicitly mention when to avoid using the tool, but the sibling list and context are clear.

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

file_listA

List files and directories at a given path.

Features:

  • List contents of any directory

  • Recursive listing with configurable depth

  • Filter results by file extension

  • Returns file sizes and types

Use cases:

  • Exploring project structures

  • Finding specific file types

  • Auditing directory contents

ParametersJSON Schema
NameRequiredDescriptionDefault
dirPathYesPath to the directory to list (defaults to current directory).
recursiveNoWhether to list subdirectories recursively.
extensionNoOptional file extension filter (e.g., '.ts', '.json').

TDQS

A4/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 mentions returning file sizes and types, but does not disclose behavior for edge cases (e.g., permission errors, large directories, missing paths) or whether results are sorted.

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 concise and well-structured with distinct sections for features and use cases. Every sentence adds value, and the bullet points make it scannable. No unnecessary details.

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 lack of an output schema, the description covers what the tool does and returns (sizes and types), but does not specify the exact return format (e.g., array of objects). It is complete enough for a simple listing tool but could be more detailed.

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, so the schema already documents parameters clearly. The description repeats parameter names in features but adds little new semantic meaning beyond 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 verb (List) and resource (files and directories at a given path). It distinguishes itself from siblings like file_read and file_write by focusing on directory listing, and includes specific features like recursive depth and extension filtering.

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 provides explicit use cases (exploring, finding, auditing) which imply when to use the tool. However, it does not mention when not to use it or suggest alternatives, which would strengthen guidance.

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

file_readA

Read the contents of a file from the local filesystem.

Features:

  • Read entire file or a specific byte range

  • Automatic encoding detection (UTF-8 default)

  • Returns file metadata (size, last modified)

  • Supports any text file type

Security:

  • Rejects paths outside the allowed root directories

  • Refuses to read binary files or directories

ParametersJSON Schema
NameRequiredDescriptionDefault
filePathYesAbsolute or relative path to the file.
encodingNoCharacter encoding (default: utf-8).utf-8

TDQS

A4.3/5.0
Behavior4/5

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

Without annotations, the description discloses behaviors: reads entire file or byte range (though byte range param missing), automatic encoding detection, returns metadata, and security restrictions. The mention of byte range is inconsistent with the schema, slightly reducing clarity.

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?

Description is well-structured with features and security bullet points. It is front-loaded but includes some redundancy (e.g., headers repeat purpose). Still efficient for the information provided.

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 no output schema, the description mentions return of metadata (size, last modified). It covers reading behavior and security. Lacks details on error handling or size limits, but is reasonably complete for a simple file read tool.

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?

Schema coverage is 100% with descriptions. The description adds context by noting default encoding and the ability to read byte ranges (even if not parameterized), providing value beyond the schema.

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 reads file contents from the local filesystem. The verb 'Read' and resource 'file' are specific, and it distinguishes itself from sibling tools like file_write and file_list.

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 provides features and security constraints, implying when to use (to read a text file). However, it lacks explicit guidance on when not to use or alternatives, though the purpose is clear enough.

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

file_writeA

Write content to a file on the local filesystem.

Features:

  • Creates parent directories automatically if they don't exist

  • Overwrites existing files or creates new ones

  • Supports any text encoding (default: UTF-8)

Use cases:

  • Saving generated code, configs, or data

  • Creating log files

  • Writing reports or exports

ParametersJSON Schema
NameRequiredDescriptionDefault
filePathYesPath to the file to write.
contentYesContent to write to the file.
encodingNoCharacter encoding (default: utf-8).utf-8

TDQS

A4.1/5.0
Behavior4/5

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

No annotations provided, so description must cover behavior. It discloses automatic parent directory creation, overwrite behavior, and encoding support (default UTF-8). Missing details on permissions or error handling, but adequate for typical usage.

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?

Well-structured with a one-line summary, then Features and Use cases in bullet points. Could be slightly more concise by merging use cases into a sentence, but overall efficient.

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 simple write tool with 3 parameters and no output schema, the description covers purpose, features, and use cases adequately. Missing error handling or edge cases, but not critical for typical 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?

Schema coverage is 100%, so baseline is 3. Description does not add significant meaning beyond the schema's parameter descriptions; it only states 'Supports any text encoding' which repeats the default.

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 'Write content to a file on the local filesystem' – a specific verb and resource. This distinguishes it from siblings like file_read and file_list.

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?

Lists concrete use cases (saving generated code, configs, log files, reports/exports) but does not explicitly exclude scenarios or compare with alternatives like api_call or db_query.

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

get_datetimeA

Get the current date and time in various formats.

Returns:

  • ISO 8601 string

  • Unix timestamp

  • Individual components (year, month, day, hour, minute, second)

  • Day of week and week number

  • Timezone information

This tool does not require any parameters.

ParametersJSON Schema
NameRequiredDescriptionDefault
timezoneNoIANA timezone string (e.g., 'America/New_York', 'UTC'). Defaults to the server's local timezone.

TDQS

A3.7/5.0
Behavior4/5

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

With no annotations, the description adequately discloses behavioral traits: it lists the return formats and states no parameters are required. However, it does not explain behavior when an invalid timezone is provided or when the timezone parameter is omitted (defaults to server time). The return format details are good.

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 concise and front-loaded with the main purpose. The bullet-style list of return types is easy to scan. One minor inefficiency: the phrase 'This tool does not require any parameters' could be replaced with mentioning the optional parameter, but overall it's 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?

For a simple tool with one optional parameter and no output schema, the description covers the core functionality and return types. However, it misses context about default timezone behavior, error handling, and the optional parameter itself. Given the low complexity, it is minimally adequate but not thorough.

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 input schema has 100% coverage with a clear description for the optional 'timezone' parameter. However, the tool description states 'This tool does not require any parameters,' which, while technically true, is misleading by omission because it fails to mention the optional timezone parameter. This adds confusion rather than value.

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 tool's purpose: 'Get the current date and time in various formats.' It lists specific return types (ISO 8601, Unix timestamp, components), making the functionality unambiguous. Among siblings, no other tool provides datetime, so differentiation is clear.

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 does not explicitly state when to use this tool versus alternatives. While the purpose is obvious (retrieving current datetime), no guidance is given on cases where timezone specification might be needed or that alternatives like get_environment might provide system time. Usage is implied but not articulated.

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

get_environmentA

Get information about the current server environment.

Returns:

  • Operating system details (platform, arch, release)

  • Node.js version

  • Server process info (PID, uptime, memory usage)

  • CPU information

  • Memory (total, free, used)

  • Network hostname

This tool does not require any parameters. No sensitive environment variables or secrets are exposed.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

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

With no annotations, the description carries full burden. It discloses 'No sensitive environment variables or secrets are exposed,' which is important safety information. It also enumerates return categories, aiding understanding of tool behavior. No contradictions or omissions noted.

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 concise: three sentences that front-load the main purpose, then bullet-like list of returns, then a clarifying note about safety. Every sentence adds value without redundancy.

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

Completeness5/5

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

For a simple environment inspection tool with no output schema, the description adequately covers the key return categories (OS, Node.js, process, CPU, memory, hostname) and the safety guarantee. No gaps are apparent given the tool's simplicity and lack of parameters.

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 tool has zero parameters and schema coverage is 100%. The description adds value by explicitly confirming no parameters are required, which reinforces the schema. Baseline for zero-param tools is 4, and this is met.

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 'Get information about the current server environment' and lists specific categories of returned data (OS, Node.js, process, CPU, memory, hostname). It uniquely identifies the tool's purpose and distinguishes it from sibling tools like 'get_datetime' or 'calculator'.

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 notes 'This tool does not require any parameters,' which is a key usage detail. However, it does not provide explicit when-to-use or when-not-to-use guidance relative to siblings, though the purpose is clear and the context implies it's for environment introspection.

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

json_parserA

Parse, validate, and query JSON data.

Modes:

  • "parse": Parse a JSON string and return it formatted.

  • "query": Extract a specific field using dot-notation (e.g., "data.users[0].name").

  • "validate": Check if a string is valid JSON and describe its structure.

  • "summarize": Return a schema-like summary of a JSON object's structure.

Examples:

  • Parse: '{"a":1,"b":2}' → pretty-printed object

  • Query: '{"users":[{"name":"Alice"}]}' with path "users[0].name" → "Alice"

  • Validate: '{"a":1}' → {"valid": true, "type": "object", "keys": ["a"]}

ParametersJSON Schema
NameRequiredDescriptionDefault
jsonYesThe JSON string to process.
operationNoThe operation to perform on the JSON data.parse
pathNoDot-notation path for query mode (e.g., "users[0].name").

TDQS

A4.5/5.0
Behavior4/5

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

Since no annotations are provided, the description fully bears the responsibility for behavioral disclosure. It explains the outcomes for each operation (e.g., pretty-printed object for parse, extraction for query, validation result, summary for summarize) and provides examples. It does not cover error handling (e.g., malformed JSON) or performance, which is a minor gap.

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 concise, with a clear opening sentence followed by a well-structured list of modes and examples. Every sentence provides essential information without redundancy, and the most critical 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?

Given the tool has three parameters, no output schema, and no annotations, the description is largely complete. It explains each mode's return, path notation, and provides examples. However, it does not clarify that 'path' is only relevant for query mode (though implied) or describe error behavior for invalid inputs, which prevents a perfect score.

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?

The input schema has 100% coverage, but the description significantly enriches understanding: it explains the enum 'operation' with four distinct modes, clarifies the dot-notation for 'path', and provides concrete examples demonstrating how parameters interact. The schema descriptions are minimal, so the description adds substantial value.

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 starts with 'Parse, validate, and query JSON data', immediately stating the tool's resource (JSON data) and action verbs. It clearly distinguishes itself from sibling tools like text_transform, which handle general text transformations, by focusing specifically on JSON operations.

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 lists four modes (parse, query, validate, summarize) with specific use cases and examples for each, guiding the agent on when to use each mode. However, it does not explicitly state when not to use this tool or provide alternatives among sibling tools, which would push it to a 5.

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

text_transformA

Transform text using various operations.

Supported operations:

  • "uppercase": Convert to UPPERCASE

  • "lowercase": Convert to lowercase

  • "titlecase": Convert to Title Case

  • "camelcase": Convert to camelCase

  • "snakecase": Convert to snake_case

  • "kebabcase": Convert to kebab-case

  • "reverse": Reverse the text

  • "trim": Remove leading/trailing whitespace

  • "slug": URL-safe slug (lowercase, hyphens, no special chars)

  • "base64_encode": Encode to Base64

  • "base64_decode": Decode from Base64

  • "word_count": Count words, characters, sentences, and paragraphs

  • "remove_duplicates": Remove duplicate lines

  • "sort_lines": Sort lines alphabetically

  • "extract_emails": Extract all email addresses from text

  • "extract_urls": Extract all URLs from text

  • "hash": Simple hash summary (character frequency)

ParametersJSON Schema
NameRequiredDescriptionDefault
textYesThe input text to transform.
operationYesThe transformation operation to apply (see list above).

TDQS

A4.6/5.0
Behavior5/5

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

No annotations are provided, but the description thoroughly explains each operation's behavior, including edge cases like 'slug' (URL-safe slug) and 'hash' (character frequency). There is no contradiction with missing annotations.

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 well-structured with a clear opening line followed by a bulleted list. While it is somewhat lengthy due to the number of operations, each sentence serves a purpose. It is efficient for the content provided.

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?

The tool lacks an output schema, but the description implies the return type (transformed text) for most operations. However, for operations like 'word_count' or 'extract_emails', the exact return format is not specified, leaving minor ambiguity.

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?

The input schema has 100% description coverage, and the description adds significant value by enumerating the valid operations and briefly explaining each. This goes beyond the schema's generic 'see list above' reference.

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 tool transforms text using various operations, listing 17 specific operations. This is specific, action-oriented, and distinguishes it from sibling tools (none of which are text transformation tools).

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 lists all supported operations, making it clear what can be done. However, it does not explicitly state when to use this tool versus alternatives, nor does it provide any 'when not to use' guidance. Nevertheless, the siblings are unrelated, so the context is sufficient.

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 updatesv1.0.0
    • First observedapi_call
    • First observedcalculator
    • First observeddb_query
    • First observedfile_list
    • First observedfile_read
    • First observedfile_write
    • First observedget_datetime
    • First observedget_environment
    • First observedjson_parser
    • First observedtext_transform

TDQS

A4.3/5.0

Scored across 10 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: HTTP requests, math, SQL, file operations, datetime, environment, JSON parsing, text transformation. No overlap or ambiguity.

Naming Consistency5/5

All tool names use snake_case consistently, with a verb_noun pattern for most (file_list, file_read, file_write, get_datetime, get_environment) and simple nouns for others (calculator, json_parser). No mixing of conventions.

Tool Count5/5

10 tools is an appropriate size for a general-purpose utility toolkit, covering diverse common operations without being unwieldy or too sparse.

Completeness4/5

Covers majority of common utility tasks: HTTP, math, SQL, file I/O, datetime, environment, JSON, text transforms. Missing a file delete tool and more advanced date or CSV operations, but overall solid for the toolkit domain.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    A Model Context Protocol server built with mcp-framework that allows users to create and manage custom tools for processing data, integrating with the Claude Desktop via CLI.
    39 npm
    5
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    A comprehensive Model Context Protocol server implementation that enables AI assistants to interact with file systems, databases, GitHub repositories, web resources, and system tools while maintaining security and control.
    65 npm
    2
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    A Model Context Protocol server that provides AI models with structured access to external data and services, acting as a bridge between AI assistants and applications, databases, and APIs in a standardized, secure way.
    2
    -