日语字符计数工具

一个用于准确计算日语文本字符数(基于字素单位)的MCP服务器工具,可通过Web版ChatGPT的'新连接器'接入。

  • by tarakomasu
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 tarakomasu/mcp-practice

使用说明

日语字符计数MCP 服务器

Web版ChatGPT的“新连接器”可以连接MCP服务器。精确计算日语文本字符数(以图形为单位)的工具 countJapaneseChars 中描述的相应参数的值。

机能

  • counts日本字符:精确计算日语文本的字符数(以图形为单位)
    • Intl.Segmenter 来定义自定义外观
    • 正确处理辅助门对和组合字符

技术栈

  • Next.js 16(应用路由器)
  • TypeScript
  • @模型上下文协议/sdk
  • Intl.Segmenter (接枝计数用)

安装,安装

安装相关性

npm install

启动开发服务器

npm run dev

开发服务器 http://localhost:3000 中所述修改相应参数的值。

MCP服务器的端点是 http://localhost:3000/api/mcp 是。

使用方法

Web版ChatGPT的“新连接器”连接

  1. ChatGPT的设置打开“新连接器”
  2. 端点URL输入: http://localhost:3000/api/mcp (开发环境)或 https://your-domain.com/api/mcp (本番环境)
  3. 建立连接

API端点

  • 发布 /api/mcp: MCP处理请求
  • 获取 /api/mcp: SSE流(当前为JSON使用响应模式)
  • 删除 /api/mcp:会话结束
  • 选项 /api/mcp: CORS印前检查

工具示例

countJapaneseChars 调用该工具时,将返回以下响应:

{
  "content": [
    {
      "type": "text",
      "text": "文字数: 9"
    }
  ],
  "structuredContent": {
    "count": 9,
    "text": "こんにちは、世界!"
  }
}

部署

Vercel部署到(建议)

1. Vercel帐户准备

维塞尔进行动态观察时的轴心点。

2.部署项目

# Vercel CLIをインストール(初回のみ)
npm install -g vercel

# プロジェクトディレクトリでデプロイ
vercel

# 本番環境へデプロイ
vercel --prod

单击功能区上GitHub自动部署:

  1. GitHub推送项目
  2. Vercel在仪表板上,单击导入项目
  3. GitHub选择存储库
  4. 检查部署设置(默认情况下没有问题)
  5. 「Deploy」来修改标记元素的显示属性

3.部署后确认

部署后提供的URL的,之 /api/mcp 端点MCP作为服务器工作。

例: https://your-project.vercel.app/api/mcp

4. Web版ChatGPT连接到

  1. ChatGPT打开
  2. 选择新连接器
  3. 端点URL输入: https://your-project.vercel.app/api/mcp
  4. 建立连接

其他部署位置

Netlify

# Netlify CLIをインストール
npm install -g netlify-cli

# デプロイ
netlify deploy --prod

铁路

  1. 铁路签名
  2. “新项目”→“从GitHub仓库部署”
  3. 构建命令: npm run build
  4. 启动命令: npm start

环境变数

当前不需要设置环境变量。在动态输入提示中单击Redis等已弃用的函数的缺少的支持。

Redis集成(可选)

如果要在生产环境中使用多个实例,请单击Redis建议进行会话管理:

npm install ioredis

app/api/mcp/route.ts 的Redis对较大场景进行渲染期间已观察到该故障。

实施详细信息

代码结构(模块划分)

app/api/mcp/
├── route.ts                        # HTTPエンドポイントハンドラー
│                                   # POST, GET, DELETE, OPTIONSメソッド
│                                   # セッション管理
│
├── lib/
│   ├── helpers.ts                  # ヘルパー関数
│   │                               # - Next.js ⇔ Node.js 変換
│   │                               # - CORS設定
│   │
│   └── mcp-server.ts              # MCPサーバーセットアップ
│                                   # - サーバーインスタンス作成
│                                   # - ツール登録
│
└── tools/
    └── countJapaneseChars.ts      # 文字数カウントツール
                                    # - グラフェムカウント実装
                                    # - ツール設定とハンドラー

每个文件都包含超详细的评论的规格化距离的幂函数

  • 为什么需要那个代码
  • 如何运作
  • 注意事项和替代方案
  • 具体使用示例

主要机能

  • 接枝计数: Intl.Segmenter 中描述的场景,使用下列步骤创建明细表,以便在概念设计中分析体量的周长
    • 带回退功能: Intl.Segmenter不可用的环境
  • 会话管理:在内存中管理会话(在生产环境中)Redis等的使用推荐)
  • 跨域资源共享: Web版ChatGPT进行动态观察时的轴心点CORS设置页眉
    • Authorization支持页眉(用于将来的身份验证)

产品质量特点

  1. 运行时指定: runtime = "nodejs" 的Node.js API确保使用
  2. 坚固的初始化: isInitializeRequest中找到最佳实践
  3. 错误处理:返回所有端点的正确错误响应
  4. 健康检查: GET 在端点确认会话状态
  5. 清除会话: DELETE 简单删除,无需执行任何操作
  6. 模块划分:按责任划分文件,提高可维护性和可读性

许可证

麻省理工学院