Skip to main content
Glama

MCP 服务器

使用 Cloudflare Workers 和 Hono 框架构建的现代 AI 服务代理,支持包括 Anthropic Claude 和 OpenAI 在内的多家 AI 提供商。

特征

  • 多供应商 AI 服务集成(Anthropic Claude、OpenAI)

  • 基于 Cloudflare Workers 构建,用于全球边缘部署

  • 使用 Hono 框架快速高效地处理请求

  • 使用 TypeScript 实现类型安全

  • CORS 对跨域请求的支持

  • 健康检查和提供商信息端点

Related MCP server: Remote MCP Server Authless

先决条件

  • Node.js(推荐 LTS 版本)

  • npm 或 pnpm 包管理器

  • 用于部署的 Cloudflare 帐户

  • 受支持的 AI 提供商的 API 密钥

安装

  1. 克隆存储库

  2. 安装依赖项:

pnpm install

环境设置

  1. 复制示例环境文件:

cp .env.example .env
  1. 使用您的 API 密钥和首选项在.env中配置环境变量

发展

启动开发服务器:

pnpm run dev

服务器将以开发模式启动并启用热重载。

部署

部署到 Cloudflare Workers:

pnpm run deploy

API 端点

健康检查

  • GET /health

  • 返回服务器状态和配置

提供商信息

  • GET /api/provider

  • 返回当前 AI 提供商和模型配置

MCP API

  • POST /api/mcp

  • AI 服务请求的主要端点

  • 接受带有上下文、查询和选项的 JSON 负载

项目结构

├── src/
│   ├── controllers/     # Request handlers
│   ├── models/          # Type definitions
│   ├── services/        # AI service implementations
│   └── index.ts         # Main application entry
├── public/             # Static assets
└── wrangler.jsonc      # Cloudflare Workers configuration

执照

麻省理工学院

Available Tools

5 tools
api-clientD

ApiClient tool description

NameRequiredDescriptionDefault
messageNoMessage to process

TDQS

D1.4/5.0
Behavior1/5

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

With no annotations, the description bears full responsibility for disclosing behavioral traits. It fails to mention any side effects, authorization needs, rate limits, or return characteristics, offering only the generic name.

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

Conciseness2/5

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

The description is short but wastes its single sentence on a tautology. It is under-specified rather than concise, as it omits essential information that a longer description would provide.

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

Completeness1/5

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

Given the tool's generic name and the presence of siblings, the description is wholly incomplete. It does not mention the API being communicated with, the expected output, or any special behavior, rendering it insufficient for an agent to use correctly.

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 parameter 'message' is already documented in the input schema. The description adds no additional meaning or constraints beyond what the schema provides.

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

Purpose1/5

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

The description 'ApiClient tool description' is a tautology that merely restates the tool name without specifying any verb, resource, or action. It does not distinguish this tool from siblings like 'data-processor' or 'file-handler'.

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

Usage Guidelines1/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 vs. alternatives. The description lacks any context, prerequisites, or examples, leaving the agent without any decision-making support.

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

data-processorD

DataProcessor tool description

NameRequiredDescriptionDefault
messageNoMessage to process

TDQS

D1.4/5.0
Behavior1/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It tells nothing about side effects, permissions, restrictions, or return behavior, leaving the agent completely in the dark about what the tool does.

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

Conciseness2/5

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

The description is extremely short (4 words) but wastes the opportunity to convey any useful information. Conciseness at the expense of substance is not valued.

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

Completeness1/5

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

Given low complexity (1 optional param, no annotations, no output schema), a minimal description should at least clarify the nature of processing. This description is completely inadequate.

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% (the 'message' parameter has a description), so baseline is 3. The tool description adds no further meaning beyond the schema, but does not harm.

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

Purpose1/5

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

The description 'DataProcessor tool description' is a tautology that merely restates the tool name without specifying any action or resource. It fails to convey what data processing actually entails.

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

Usage Guidelines1/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 its siblings (api-client, example_tool, file-handler, my-tool). There is no mention of context, prerequisites, or alternatives.

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

example_toolC

An example tool that processes messages

NameRequiredDescriptionDefault
messageNoMessage to process

TDQS

C2.2/5.0
Behavior2/5

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

No annotations provided and the description lacks any behavioral traits such as side effects, permissions, or read-only/mutating nature.

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

Conciseness2/5

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

While short, the description is under-specified and does not earn its place with substantive information.

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 simple schema and no output schema or annotations, the description fails to provide complete context, e.g., what the output is or expected behavior.

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 description adds no value beyond the schema definition for the only parameter 'message'.

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

Purpose2/5

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

The description 'processes messages' is vague and does not specify what kind of processing or distinguish from sibling tools like api-client, data-processor, and file-handler.

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; no exclusions or prerequisites mentioned.

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

file-handlerD

FileHandler tool description

NameRequiredDescriptionDefault
messageNoMessage to process

TDQS

D1.4/5.0
Behavior1/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 contains no information about side effects, permissions, or any behavior beyond the name, leaving the agent completely uninformed.

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

Conciseness2/5

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

The description is very short, but it is underspecified rather than concise. It fails to convey useful information about the tool's purpose or usage, making it inefficient for an agent.

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

Completeness1/5

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

Given the tool's simplicity (single parameter, no output schema), the description should at least state what the tool does with the message. It does not, leaving the context completely incomplete.

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 schema description coverage is 100% (one parameter 'message' described as 'Message to process'). The description adds no additional meaning beyond the schema, so a baseline score of 3 is appropriate.

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

Purpose1/5

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

The description 'FileHandler tool description' is a tautology, merely restating the tool name without specifying any verb or resource. It does not clarify what the tool does, and it fails to distinguish it from siblings like 'api-client' or 'data-processor'.

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

Usage Guidelines1/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, when not to, or how it compares to alternatives. The description is generic and offers no context for selection.

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

my-toolD

MyTool tool description

NameRequiredDescriptionDefault
messageNoMessage to process

TDQS

D1.4/5.0
Behavior1/5

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

With no annotations available, the description carries full responsibility for behavioral disclosure. It merely repeats the tool name and offers no insight into side effects, permissions, or constraints.

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

Conciseness2/5

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

While the description is short (three words), it is under-specified rather than concise. It lacks front-loaded key information and fails to earn its place by adding value.

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

Completeness1/5

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

Given the tool's single parameter, lack of output schema, and absent annotations, the description is grossly incomplete. It provides no operational context for agent invocation.

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%, and the input schema already describes the 'message' parameter. The description adds no further semantic value beyond the schema, so a baseline score of 3 is appropriate.

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

Purpose1/5

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

The description 'MyTool tool description' is a tautology that restates the tool name without indicating any specific action or resource. It fails to distinguish from sibling tools like 'api-client' or 'data-processor'.

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

Usage Guidelines1/5

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

No usage context or guidance is provided. The description does not specify when to use this tool over alternatives, nor does it mention any prerequisites or exclusions.

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. 5 tool updates
    • First observedapi-client
    • First observeddata-processor
    • First observedexample_tool
    • First observedfile-handler
    • First observedmy-tool

TDQS

C2/5.0

Scored across 5 tools

Disambiguation3/5

The tools have distinct names like api-client, data-processor, and file-handler, which suggest different purposes, but descriptions are generic (e.g., 'ApiClient tool description'), leaving some ambiguity about their specific functions. Without detailed descriptions, it's unclear if there's overlap in processing or handling tasks.

Naming Consistency2/5

Naming is inconsistent with mixed conventions: hyphen-case (api-client, data-processor, my-tool), snake_case (example_tool), and camelCase (FileHandler). This lack of a predictable pattern makes the tool set harder to navigate and could confuse agents.

Tool Count4/5

With 5 tools, the count is reasonable for a general-purpose MCP server, suggesting a moderate scope. It's not too thin or heavy, though the generic nature of the tools makes it hard to assess if this number fits a specific domain perfectly.

Completeness2/5

Given the generic tool names and descriptions, it's impossible to infer a clear domain, making completeness assessment difficult. However, the set lacks obvious CRUD or lifecycle coverage, and tools like 'example_tool' and 'my-tool' seem vague, indicating significant gaps for any specific workflow.

Maintenance

ActivityInactive
ResponsivenessSyncing

Related MCP Connectors

Related MCP Servers