随机猫事实MCP服务器

一个用于构建简单MCP(模型上下文协议)服务器的教程项目,通过公开的meowfacts API返回随机猫事实。

  • by vhoudoverdov
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 vhoudoverdov/meowfacts-mcp

使用说明

meowfacts mcp

用于返回随机猫事实的MCP服务器

此存储库旨在作为构建非常简单的MCP(模型上下文协议)服务器的教程。它允许我们研究MCP服务器的底层组件,比如处理MCP客户端API抽象的python脚本。在本教程中,我们将使用一个名为 事实 通过 wh迭代它,它返回一个随机的猫事实作为对请求的响应。

介绍

MCP服务器允许大型语言模型(LLM)与外部数据源和API进行交互。MCP协议使用客户端/服务器模型来促进这种交互,该模型抽象了运行API命令、解析结果和维护脚本所需的大量工作。

开始实现新的MCP服务器的一个好地方是研究以下示例 模型上下文协议.io本示例使用美国国家气象局(NWS)API创建一个MCP服务器,该服务器公开两个工具:一个用于获取给定状态的天气预报的工具,另一个用于获得给定纬度和经度坐标对的天气预报。

该示例背后的理论允许我们将此功能扩展到其他API。meowfacts-mcp使用示例中的代码作为起点来开发一个新的mcp服务器,该服务器公开了一个允许LLM返回随机猫事实的工具。

我们的目标API

通过研究原始项目中的meowfacts API,我们可以看到API由一个端点组成: https://meowfacts.herokuapp.com/

此API终结点接受 GET 请求,虽然它支持一些更高级的参数(如语言支持和通过ID查找事实的支持),但我们将通过仅实现返回单个随机事实的API调用来保持MCP服务器的初始版本的简单性,在我们的情况下 GET 请求 https://meowfacts.herokuapp.com/

服务器安装程序

您可以按照以下步骤从头开始构建此MCP服务器。

uv 将处理环境的生成,我们将创建一个名为meowfacts.py的文件来保存服务器。

# Create a new directory for the meowfacts server
mkdir meowfacts-server
cd meowfacts-server

# Activate the python virtual environment
uv init
uv add "mcp[cli]" httpx

# Create the meowfacts.py file.
New-Item meowfacts.py

您可以用此存储库中meowfacts.py的内容填充空的meowfact.py文件。

客户端设置

与其他MCP服务器一样,利用meowfacts MCP服务器需要在我们的设置文件中指定服务器。在像Gemini CLI这样的MCP客户端中,这是通过修改 settings.json 在Gemini工作目录中,为了定义新服务器,让我们这样做。

假设我们在目录C:\Users\sysop\mewfacts server中创建了服务器。我们的 settings.json 因为此设置看起来类似于以下内容。如果定义了其他MCP服务器,则只需将meowfacts对象与现有MCP服务器一起引入现有mcpServers对象中。在以下示例中,只定义了一个MCP服务器:meowfacts。

{
  "security": {
    "auth": {
      "selectedType": "oauth-personal"
    }
  },
  "ui": {
    "showHomeDirectoryWarning": false
  },
  "general": {
    "previewFeatures": true
  },
  "mcpServers": {
    "meowfacts": {
      "command": "uv",
      "args": [
        "--directory",
        "C:\\Users\\sysop\\meowfacts-server",
        "run",
        "meowfacts.py"
      ]
    }
  }
}

测试

设置好MCP服务器和MCP客户端后,我们的架构就完成了,我们可以继续进行测试了!

保存后 settings.json 启动Gemini CLI,我们可以通过键入以下命令来验证meowfacts MCP服务器是否正在运行 /mcp list

我们现在可以继续要求Gemini CLI给我们一个随机的猫事实!输入以下提示: Give me a random cat fact

Gemini CLI将根据提示定位要使用的正确工具,在我们的例子中是 get_cat_fact 我们的新meowfacts MCP服务器中的工具。

Gemini CLI将要求我们确认是否要运行此工具。选择 Allow Once 所以我们可以运行这个工具,看看我们得到了什么随机的猫事实!

的结果

Gemini CLI显示了我们的随机猫事实:

In 1987 cats overtook dogs as the number one pet in America.

谁知道!

       |\      _,,,---,,_
 ZZzzz /,`.-'`'    -.  ;-;;,_
      |,*-  ) )-,_. ,\ (  `'-'
     `'---''(_/--'  `-'\_)