______________________________________________________________________
标题:通用核心MCP 表情符号📚 颜色来源:蓝色 颜色:红色 sdk:毕业 app_file:app.py 固定:false 标签:
- 构建mcp跟踪消费者
- 主控程序
- 格拉迪奥
- 教育
______________________________________________________________________
通用核心标准MCP服务器
一种模型上下文协议(MCP)服务器,为公共核心教育标准提供语义搜索和查找。使用向量相似性搜索来查找与学习活动、课程或教育目标相关的标准。显示两个MCP工具: find_relevant_standards 用于语义搜索和 get_standard_details 用于通过标识符直接查找。
在行动中看到它
以下是一个快速演示,了解MCP服务器在Claude Desktop中的工作原理:

MCP工具
该服务器公开了两个MCP工具,可以实现语义搜索和教育标准的详细查找:
find_relevant_standards
执行语义搜索以查找与学习活动、课程或教育目标相关的教育标准。
参数:
activity(string,必填):对学习活动、课程或教育目标的自然语言描述。为了获得最佳结果,请具体描述。
- 示例:“向三年级学生教授分数”、“阅读理解活动”、“求解二次方程”
max_results(整数,可选,默认值:5):要返回的最大标准数。必须介于1和20之间。grade(字符串,可选):等级过滤器。有效值:K,01,02,03,04,05,06,07,08,09,10,11,12,或09-12高中范围。
退货: 一个JSON对象,包含:
success:布尔值,指示搜索是否成功results:匹配标准数组,每个包含:
- _id:标准的唯一GUID(用于 get_standard_details) - content:带层次结构的完整标准文本 - subject:学科领域(如“数学”、“ELA素养”) - education_levels:年级数组(例如。, ["03"]) - statement_notation:标准符号(如果可用)(例如。, "3.NF.A.1") - standard_set_title:标准集的标题 - score:相关性得分(0-1,越高越相关) - 层次关系 (探索相关标准): - ancestor_ids:祖先标准ID数组(从根到直接父级排序) - child_ids:子标准ID数组(子标准) - parent_id:父标准的ID(根标准为空) - root_id:层次结构中根祖先的ID - depth:标准层次结构中的深度级别 - is_leaf:布尔值,指示这是否是叶子节点(没有子节点) - is_root:布尔值,指示这是否是根节点(没有父节点)
message:关于结果的人类可读信息
探索相关标准: 每个结果包括 ancestor_ids 和 child_ids 数组,允许您探索标准层次结构。您可以将这些ID与 get_standard_details 致:
- 查阅父母或祖先的标准,以了解更广泛的背景
- 查阅儿童标准,查看更具体的子标准
- 围绕搜索结果探索整个相关标准“系列”
示例用法:
{
"activity": "teaching fractions to third graders",
"max_results": 5,
"grade": "03"
}get_standard_details
通过特定标准的ID检索其完整的元数据和详细信息。
参数:
standard_id(字符串,必填):标准的唯一GUID。 备注:这必须是GUID格式(不是像这样的语句表示法3.NF.A.1).要获取标准ID,请先使用find_relevant_standards搜索标准-搜索结果包括_id每个标准的字段。
退货: 一个JSON对象,包含:
success:布尔值,指示查找是否成功results:包含一个标准对象(如果找不到,则为空)的数组,其中包含完整的元数据,包括:
- _id:标准的唯一GUID - content:具有完整层次结构的完整标准文本 - subject:主题领域 - education_levels:年级 - statement_notation:标准符号(如有) - standard_set_title:标准集的标题 - jurisdiction_title:管辖权(例如“怀俄明州”) - depth:标准层次结构的深度 - is_leaf:这是否是叶子节点 - is_root:这是否是根节点 - parent_id:母标准ID(如有) - root_id:根祖先的ID - ancestor_ids:祖先ID数组(从根到直接父级排序) - child_ids:子标准ID数组 - 所有其他可用元数据字段
message:关于结果的人类可读信息
示例用法:
{
"standard_id": "EA60C8D165F6481B90BFF782CE193F93"
}工作流程: 典型的工作流程包括:
基本搜索和查找:
- 使用
find_relevant_standards搜索与您的活动相匹配的标准 - 提取
_id从搜索结果中 - 使用
get_standard_details说完这个_id获取特定标准的完整信息
探索相关标准(标准系列):
- 使用
find_relevant_standards查找与您的查询相关的标准 - 每个结果包括
ancestor_ids和child_ids数组 - 使用这些ID
get_standard_details探索:
- 父母/祖先标准:从中查找ID ancestor_ids 阵列或 parent_id 了解更广泛的背景和层次结构 - 儿童标准:从中查找ID child_ids 阵列以查看同一系列中更具体的子标准 - 相关标准:使用 root_id 查找具有相同根祖先的其他标准
这使得我们能够探索整个标准系列。例如,如果你找到一个关于分数的特定标准,你可以查找它的父级以查看更广泛的类别,或者查找它的子级以查看不同级别的更具体的分数相关标准。
截图
_此处将添加显示Gradio界面、MCP客户端集成和示例结果的截图。_
试试看
您可以使用部署的拥抱面部空间快速试用此MCP服务器,而无需任何设置。Space连接到已加载怀俄明州标准的现有Pinecone数据库,因此您可以立即开始使用它。
拥抱脸部空间: https://huggingface.co/spaces/MCP-1st-Birthday/common_core_mcp
MCP服务器端点位于: https://MCP-1st-Birthday-common-core-mcp.hf.space/gradio_api/mcp/
重要提示:数据库设置
拥抱脸部空间:部署的Hugging Face Space连接到已加载怀俄明州标准的Pinecone数据库。使用空间时不需要额外的设置。
本地开发:如果您在本地运行此项目 必须 设置自己的Pinecone数据库并将标准加载到其中。如果没有在Pinecone中加载标准,MCP服务器将没有任何返回,搜索将为空。请参阅 使用Pinecone进行本地设置 请参阅下面的部分以获取详细说明。
安装
先决条件
- Python 3.12+
- 带API密钥的松果帐户(开始使用松果)
- 用代币拥抱Face帐户(用于聊天界面)
- 通用标准项目API密钥(用于本地下载标准)
设置
git clone
cd common_core_mcp
# Create and activate virtual environment
python3.12 -m venv .venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
# Install dependencies
pip install -r requirements.txt
# Copy environment file template
cp .env.example .env编辑 .env 并设置:
PINECONE_API_KEY:您的Pinecone API密钥(开始使用松果)PINECONE_INDEX_NAME:松果索引名称(默认值:common-core-standards)PINECONE_NAMESPACE:松果命名空间(默认值:standards)HF_TOKEN:聊天界面拥抱Face令牌CSP_API_KEY:您的通用标准项目API密钥(用于本地设置-在https://commonstandardsproject.com/developers)
跑
python app.pyGradio界面运行于 http://localhost:7860MCP服务器端点位于 http://localhost:7860/gradio_api/mcp/.
使用Pinecone进行本地设置
在MCP服务器可以返回任何结果之前,您必须设置Pinecone数据库并将标准加载到其中。本节将指导您使用工具CLI完成完整的工作流程。
备注:在运行CLI命令之前,请确保您的虚拟环境已激活: ``bash source .venv/bin/activate # On Windows: .venv\Scripts\activate ``第一步:初始化松果指数
首先,创建并配置松果索引:
python tools/cli.py pinecone-init此命令:
- 验证您的Pinecone API密钥
- 检查索引是否存在(如果不存在,则创建索引)
- 显示包括向量计数在内的索引统计信息
第二步:发现可用的司法管辖区
列出可用的司法管辖区(州、组织),以查找可以下载的标准:
python tools/cli.py jurisdictions按名称或类型筛选:
# Search for Wyoming
python tools/cli.py jurisdictions --search wyoming
# Filter by state type
python tools/cli.py jurisdictions --type state步骤3:查看管辖权详细信息
获取有关管辖区的详细信息,包括可用的标准集:
python tools/cli.py jurisdiction-details 例子:
# Find Wyoming's jurisdiction ID first
python tools/cli.py jurisdictions --search wyoming
# Then view details (using the ID from previous command)
python tools/cli.py jurisdiction-details 744704BE56D44FB9B3D18B543FBF9BCC这显示了该司法管辖区可用的所有标准集及其科目、年级和头衔。
步骤4:下载标准集
通过特定ID或具有过滤选项的管辖区下载标准集。
按司法管辖区下载 (推荐):
python tools/cli.py download-sets --jurisdiction 您可以根据多个条件进行筛选(所有筛选器都与AND逻辑结合使用):
# Download all math standards for grades 3-5 in Wyoming
python tools/cli.py download-sets \
--jurisdiction 744704BE56D44FB9B3D18B543FBF9BCC \
--education-levels "03,04,05" \
--subject math
# Preview what would be downloaded (dry run)
python tools/cli.py download-sets \
--jurisdiction \
--dry-run按特定集ID下载:
python tools/cli.py download-sets CLI会自动将下载的集处理为Pinecone就绪格式。下载在本地缓存在 data/raw/standardSets//.
步骤5:列出已下载的集合
查看所有下载的标准集及其处理状态:
python tools/cli.py list这显示了哪些集已下载、处理并准备上传到Pinecone。
第6步:上传到Pinecone
将处理后的标准集上传到您的松果指数:
# Upload all processed sets
python tools/cli.py pinecone-upload --all
# Upload a specific set
python tools/cli.py pinecone-upload --set-id
# Preview what would be uploaded
python tools/cli.py pinecone-upload --all --dry-run上传过程:
- 从加载已处理的标准集
data/raw/standardSets//processed.json - 使用与搜索功能相同的模型创建向量嵌入
- 批量上传记录(默认:每批96条记录)
- 跟踪上传的集合以避免重复
步骤7:验证设置
上传后,验证您的索引是否有数据:
python tools/cli.py pinecone-init这将显示索引统计信息,显示上传的矢量总数。
完整示例工作流
以下是制定怀俄明州标准的完整示例:
# 1. Initialize Pinecone
python tools/cli.py pinecone-init
# 2. Find Wyoming's jurisdiction ID
python tools/cli.py jurisdictions --search wyoming
# Note the jurisdiction ID from the output (e.g., 744704BE56D44FB9B3D18B543FBF9BCC)
# 3. View available standard sets
python tools/cli.py jurisdiction-details 744704BE56D44FB9B3D18B543FBF9BCC
# 4. Download all Wyoming standards (or filter as needed)
python tools/cli.py download-sets --jurisdiction 744704BE56D44FB9B3D18B543FBF9BCC --yes
# 5. Verify downloads
python tools/cli.py list
# 6. Upload to Pinecone
python tools/cli.py pinecone-upload --all
# 7. Verify index has data
python tools/cli.py pinecone-initCLI命令参考
所有可用的CLI命令:
python tools/cli.py --help
python tools/cli.py --help # Get help for specific command可用命令:
jurisdictions-列出具有过滤功能的可用司法管辖区jurisdiction-details-查看管辖区的详细信息和标准集download-sets-按ID或管辖区下载标准集list-列出所有下载的标准集pinecone-init-初始化或检查松果索引状态pinecone-upload-将处理后的集合上传到Pinecone
用法
Gradio Web界面
该界面有三个选项卡:
搜索标签:按活动描述查找标准。输入自然语言描述(例如,“向三年级学生教授分数”),设置最大结果(1-20),并可选择按年级过滤。结果包括可在“查找”选项卡中使用的标准ID。
查找选项卡:通过特定标准的ID检索其完整详细信息。 备注:此选项卡仅接受标准ID(GUID)。要获取标准ID,首先使用“搜索”选项卡查找相关标准-搜索结果将包括每个标准的ID。然后复制该ID并将其粘贴到“查找”选项卡中以获取完整的详细信息。
聊天选项卡:询问有关标准的问题。助手使用MCP工具搜索和检索信息。
MCP客户端集成
从Claude Desktop、Cursor或其他MCP客户端连接。
MCP服务器URL:
- 拥抱面部空间:
https://MCP-1st-Birthday-common-core-mcp.hf.space/gradio_api/mcp/ - 当地:
http://localhost:7860/gradio_api/mcp/
Claude桌面配置:
Claude Desktop需要使用 npx mcp-remote 连接到远程MCP服务器。首先,确保您安装了Node.js v20或更高版本。
编辑您的Claude Desktop配置文件:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - 窗户:
%APPDATA%\Claude\claude_desktop_config.json - Linux:
~/.config/Claude/claude_desktop_config.json
添加:
{
"mcpServers": {
"common-core": {
"command": "npx",
"args": [
"mcp-remote",
"https://MCP-1st-Birthday-common-core-mcp.hf.space/gradio_api/mcp/",
"--transport",
"streamable-http"
]
}
}
}Troubleshooting: Node.js Version Issues
如果你看到一个错误,比如 ReferenceError: File is not defined,你的Node.js版本太旧了。这 mcp-remote 包需要Node.js v20或更高版本。
检查你的Node.js版本:
node --version如果使用nvm并安装了Node v20+,您可以在配置中指定npx的完整路径:
{
"mcpServers": {
"common-core": {
"command": "/path/to/.nvm/versions/node/v22.x.x/bin/npx",
"args": [
"mcp-remote",
"https://MCP-1st-Birthday-common-core-mcp.hf.space/gradio_api/mcp/",
"--transport",
"streamable-http"
],
"env": {
"PATH": "/path/to/.nvm/versions/node/v22.x.x/bin:/usr/local/bin:/usr/bin:/bin"
}
}
}
}替换 /path/to/.nvm/versions/node/v22.x.x/bin 使用您实际的Node.js v20+安装路径(例如。, ~/.nvm/versions/node/v22.18.0/bin 在macOS/Linux上)。
同时清除npx缓存 要从较旧的Node版本中删除任何缓存的包,请执行以下操作:
rm -rf ~/.npm/_npx/光标配置:
编辑光标MCP配置并添加:
{
"mcpServers": {
"common-core": {
"url": "https://MCP-1st-Birthday-common-core-mcp.hf.space/gradio_api/mcp/"
}
}
}配置后重新启动客户端。工具 find_relevant_standards 和 get_standard_details 将出现在您的客户端中。请参阅 MCP工具 有关这些工具的详细文档,请参阅上文。
建筑
内置:
- 等级 6.0+:Web界面和MCP服务器功能
- 松果:用于语义搜索的矢量数据库(松果)
- 拥抱面部推理API:带工具调用的聊天界面(Qwen/Qwen2.5-7B-通过Together AI提供商指导)
- 派丹蒂克:数据验证和设置管理
演示视频
观看演示视频 查看MCP服务器的运行情况。
演示视频演示了:
- MCP服务器与Claude Desktop或Cursor集成
- 使用Gradio web界面
- 带工具调用的聊天界面
- 示例查询和结果
社交媒体
致谢
- MCP 1岁生日黑客马拉松组织者
- Gradio 6.0+的Gradio团队,支持原生MCP服务器
- Pinecone用于矢量数据库基础设施
- 用于模型托管和推理的拥抱面API
- 提供教育标准数据的共同核心标准
