Token导航 LogoToken导航TokenDH.com
Phake MCP logo
AI代理未说明官方级别未说明来源级核验

Phake MCP

MCP Server

一个用于构建MCP(Model Context Protocol)服务器的TypeScript库,支持Cloudflare Workers和Node.js,提供多种认证策略和加密存储功能。

工具数

2

提示词数

0

GitHub Stars

0

资源数

0
服务器构建TypeScriptAI代理

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

fuongz

提供方

fuongz

最后核验

2026/5/17 20:20

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

@phake/mcp

用于构建的TypeScript库 MCP(模型上下文协议) 服务器-适用于Cloudflare Workers和Node.js。

](https://www.npmjs.com/package/@phake/mcp)

![license](LICENSE)

______________________________________________________________________

为什么是@phake/mcp?

  • 多种身份验证策略:OAuth 2.1,Google/GitHub预设,承载,API密钥,自定义头
  • 加密令牌存储:AES-256-GCM处于静止状态+主动刷新
  • Cloudflare Workers本机:KV存储、内存回退、零配置
  • 生产就绪:CIMD验证、OAuth发现、DNS重新绑定保护
  • 快速脚手架: bun create @phake/mcp 开始吧

比较指南 与官方SDK进行全功能比较。

______________________________________________________________________

需求

  • 包子 1.x或Node.js 20+
  • 牧马人 CLI(用于Cloudflare Workers部署)
  • 具有Workers和KV访问权限的Cloudflare帐户(用于Worker部署)

安装

bun add @phake/mcp
# or
npm install @phake/mcp

______________________________________________________________________

快速启动(脚手架)

使用一个命令构建新的MCP服务器:

# Interactive (prompts for template)
bun create @phake/mcp

# With options
bun create @phake/mcp my-mcp-app --template cloudflare-workers --install

可用模板:

模板说明
cloudflare-workersCloudflare Workers+Hono(默认)
cloudflare-workers-googleCloudflare Workers+谷歌OAuth
node-honoNode.js+Bun+Hono

选项:

选项描述
-t, --template模板名称
-i, --install自动安装依赖项
-p, --pm包管理器: npm, bun, yarn, pnpm

______________________________________________________________________

入门指南

1.创建KV命名空间

wrangler kv namespace create TOKENS

2.将其绑定到Wrangler配置中

wrangler.toml

[[kv_namespaces]]
binding = "TOKENS"
id = ""

3.生成加密密钥

openssl rand -base64 32 | tr '+/' '-_' | tr -d '='

4.设置加密密钥

生产:

wrangler secret put RS_TOKENS_ENC_KEY

本地开发 -添加到 .dev.vars:

RS_TOKENS_ENC_KEY=

5.创造你的工人

import { createMCPServer } from "@phake/mcp";

const server = createMCPServer({
  adapter: "worker",
  tools: [/* your tools */],
});

export default server;

有关详细设置,请参阅 入门指南.

______________________________________________________________________

用法

定义工具

import { z } from "zod";
import { defineTool } from "@phake/mcp";

const greetTool = defineTool({
  name: "greet",
  description: "Returns a greeting for the given name",
  inputSchema: z.object({
    name: z.string().describe("Name to greet"),
  }),
  outputSchema: z.object({
    message: z.string().describe("The greeting message"),
  }),
  handler: async (args) => {
    return { message: `Hello, ${args.name}!` };
  },
});

经过身份验证的工具

const profileTool = defineTool({
  name: "get_profile",
  description: "Fetch the authenticated user's profile",
  inputSchema: z.object({}),
  requiresAuth: true,
  handler: async (_args, context) => {
    const response = await fetch("https://api.example.com/me", {
      headers: context.resolvedHeaders,
    });
    return await response.json();
  },
});

Cloudflare绑定

在您的工具中访问Cloudflare worker绑定(AI、Vectorize、D1、R2、KV等):

import { createMCPServer, defineTool, type ToolContext } from "@phake/mcp";

interface Env extends Cloudflare.Env {
  AI: unknown;
  VECTORIZE: unknown;
  MY_BUCKET: unknown;
}

const searchTool = defineTool({
  name: "search_vectors",
  inputSchema: z.object({ query: z.string() }),
  handler: async (args, context: ToolContext) => {
    // Type-safe access to bindings
    const ai = context.bindings?.AI;
    const vectorize = context.bindings?.VECTORIZE;
    
    return {
      content: [{
        type: "text",
        text: `AI: ${!!ai}, Vectorize: ${!!vectorize}`
      }]
    };
  },
});

const server = createMCPServer({
  tools: [searchTool],
});

获取用户信息(OAuth)

使用从OAuth提供程序获取用户配置文件 context.getUser():

const userTool = defineTool({
  name: "get_user_info",
  requiresAuth: true,
  inputSchema: z.object({}),
  handler: async (_, context) => {
    // Get token with error handling
    const { data: token, error: tokenError } = context.getToken();
    if (tokenError || !token) {
      return { content: [{ type: "text", text: tokenError }], isError: true };
    }

    // Get user info with error handling
    const { data, error } = await context.getUser();
    if (error || !data) {
      return { content: [{ type: "text", text: error }], isError: true };
    }

    return {
      content: [{
        type: "text",
        text: JSON.stringify({ email: data.email, name: data.name })
      }]
    };
  },
});

getUser() 方法根据以下内容自动检测提供者 AUTH_STRATEGY:

  • googlehttps://www.googleapis.com/oauth2/v2/userinfo
  • githubhttps://api.github.com/user

身份验证策略

策略描述
oauth使用RS令牌的完整OAuth 2.1 PKCE流=>提供者令牌映射
google与OAuth相同,具有Google预设端点
github与OAuth相同,具有GitHub预设端点
bearer静态承载令牌
api_key通过标头的静态API密钥
custom任意自定义标题
none无身份验证

身份验证指南 详细配置。

______________________________________________________________________

API 参考

createMCPServer(options)

创建MCP服务器实例。

const server = createMCPServer({
  adapter: "worker",
  tools: [greetTool, profileTool],
});

defineTool(def)

类型安全工具厂。看 API 参考 以获取完整的字段参考。

toolFail(defaults)

创建具有预设默认字段的键入错误工厂:

const fail = toolFail({ ok: false, items: null });
return fail("spreadsheet_id is required");
// => { ok: false, items: null, error: "spreadsheet_id is required" }

内置工具

工具输入输出描述
echo{ message, uppercase? }{ echoed, length }回复一条消息
health{ verbose? }{ status, timestamp, runtime, uptime? }报告服务器运行状况

包装出口

导出路径描述
核心@phake/mcpdefineTool, createMCPServer,助手
Worker运行时@phake/mcp/runtime/workerCloudflare Workers适配器
节点运行时@phake/mcp/runtime/nodeNode.js适配器(实验性的)

______________________________________________________________________

贡献

# Install dependencies
bun install

# Run tests
bun test

# Type check
bun run typecheck

# Build
bun run build

______________________________________________________________________

许可证

麻省理工学院

目录标签

目录标签

服务器构建TypeScriptAI代理TypeScript库本地部署MCP协议认证策略加密存储

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

oauth

工具数量(toolCount,工具数)

2

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明oauth部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP