Stack Overflow数据查询服务

一个基于Model Context Protocol (MCP)的服务器,提供从SQL Server数据库查询Stack Overflow数据的工具。

  • by dperdomoplain
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 dperdomoplain/mcp_example

使用说明

堆栈溢出MCP服务器

这是一个模型上下文协议(MCP)服务器,它提供了从SQL server数据库查询堆栈溢出数据的工具。该项目使用 uv 作为Python包和虚拟环境管理器。

项目设置

以下命令解释了如何设置项目:

1.初始化项目

uv init --name mcp_example --python 3.13 . 

此命令在当前目录中初始化一个新的Python项目(.)与名称 mcp_example 并指定应使用Python 3.13。

2.创建虚拟环境

2.1创建指定路径的虚拟环境

uv venv --python /opt/homebrew/bin/python3

2.2在windows、linux和mac上创建虚拟环境

uv venv --python 3.13

使用创建虚拟环境 uv虚拟环境存储在 .venv 目录。

3.激活虚拟环境

source .venv/bin/activate

激活虚拟环境,以便在项目的隔离环境中安装依赖项。

4.安装依赖项

uv add "mcp[cli]"
uv add pyodbc
uv add pydantic
uv add pydantic-settings

安装所需的软件包:

  • mcp 带有用于模型上下文协议的CLI附加功能
  • pyodbc 用于SQL Server连接
  • pydantic 用于数据验证
  • pydantic-settings 用于配置管理

5.调试检查员

npx @modelcontextprotocol/inspector

特性

此MCP服务器包括以下工具:

  • get_most_viewed_posts:从Stack Overflow数据库中检索查看次数最多的帖子
  • get_last_post_with_activity:从Stack Overflow数据库获取具有活动的最新帖子

建筑

该项目使用干净、现代的架构和Pydantic进行数据验证:

  • sql_server.py:包含 SQLServerConnection 类和Pydantic模型
  • main.py:包含MCP服务器和工具定义
  • Pydantic模型:对所有数据结构进行强大的键入和验证
  • 环境变量:支持从环境加载配置
  • 上下文管理:使用Python上下文管理器自动清理连接
  • 错误处理:具有详细错误消息的全面错误处理

配置

环境变量

创建一个 .env 包含SQL Server配置的文件:

SERVER=localhost
DATABASE=TestDB
USERNAME=your_username
PASSWORD=your_password
PORT=1433
TRUSTED_CONNECTION=false

Pydantic模型

该项目使用Pydantic模型进行数据验证:

  • SQLServerConfig:带验证的配置
  • QueryRequest:带验证的SQL查询请求
  • QueryResponse:结构化查询响应

SQL Server安装程序

先决条件

您需要安装SQL Server的ODBC驱动程序17:

在 macOS 上:

从下载并安装 Microsoft SQL Server ODBC驱动程序下载页面

在Windows上:

从下载并安装 Microsoft SQL Server ODBC驱动程序下载页面

在Linux上:

从下载并安装 Microsoft SQL Server ODBC驱动程序下载页面

数据库模式

此MCP服务器需要一个包含堆栈溢出数据的SQL server数据库。数据库应至少包含 Posts 表中有以下相关列:

  • ViewCount:帖子被查看的次数
  • LastActivityDate:帖子上最后一次活动的日期
  • 其他标准Stack Overflow帖子字段

您可以从以下位置获取堆栈溢出数据转储 堆栈交换数据转储 并将它们导入到SQL Server数据库中。

运行服务器

uv run main.py

服务器将启动并监听MCP客户端连接。