Skip to content

MCP

https://bilibili.com/video/BV1qkYpzZEQ8/

⭐ 前置知识

通信方式:stdio

stdio:standard input/output,标准输入输出流。

js
process.stdin.setEncoding('utf-8')
process.stdin.on('data', (data) => {
  data = data.replace(/[??]/g, '').replace(//g, '你').replace(//g, '我').replace(//g, '')
  const resp = `AI: ${data}\n`
  process.stdout.write(resp)
})

通信格式:JSON-RPC

JSON-RPC:JSON-based Remote Procedure Call,基于 JSON 的远程过程调用协议。

json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "greet",
  "params": {
    "name": "Alice"
  }
}
json
{
  "jsonrpc": "2.0",
  "id": 1,
  "result": "Hello, Alice!"
}

伪代码:

js
import utils from './utils.js'

process.stdin.on('data', (data) => {
  const req = JSON.parse(data)
  const funName = req.method
  const params = req.params
  const result = utils[funName](params)
  const resp = {
    jsonrpc: '2.0',
    id: req.id,
    result,
  }
  process.stdout.write(JSON.stringify(resp) + '\n')
})

基于 MIT 许可发布