上下文结构MCP
圣经文本分析服务器 上下文结构,通过MCP(模型上下文协议)接口和REST API提供形态注释的希伯来语圣经(BHSA)和希腊语新约(Nestle 1904)数据。
特性
- 希伯来圣经 --39本书(创世记-历代志下),附有完整的形态学注释 ETCBC/bhsa
- 希腊文新约圣经 --27本书(马太福音-启示录) ETCBC/雀巢1904
- 段落检索 --具有每词词素、光泽、词性和形态特征的诗级文本
- 形态学搜索 --按词性、词干、时态、性别、数字、人称、状态等查找单词
- 结构搜索 --使用搜索模板查找句法模式(子句、短语)
- 词汇提取 --按语料库频率排序的文章中的独特词汇
- LLM聊天 --由Groq(Llama 3.3 70B,免费版)支持的代理对话,带有可选的OpenAI回退;可以调用上述所有工具
- 测验生成 --希伯来语形态训练的可配置测验引擎
- 人工智能辅助测验生成器 --教师用自然语言描述测验,人工智能构建经过验证的测验定义
- 双界面 --与MCP工具(用于AI助手)和FastAPI HTTP API(用于web前端)相同的引擎
快速开始
# Clone and set up
git clone https://github.com/larsgson/context-fabric-mcp.git
cd context-fabric-mcp
cp .env.example .env # configure API keys
# Start the REST API server
uv run cf-apiAPI运行于 http://localhost:8000第一个请求将语料库数据加载到内存中(缓存数据约2秒)。
以MCP服务器运行
uv run cf-mcp这将启动MCP(模型上下文协议)服务器,以便与Claude Desktop或其他MCP兼容客户端一起使用。
客户端演示
使用此服务器作为后端的工作客户端应用程序可在 圣经文本quizz生成器。这是一个基于网络的圣经希伯来语和希腊语形态测验工具,演示了前端如何使用此服务器提供的REST API端点(文章检索、形态搜索、测验生成和人工智能辅助测验构建)。
API终点
| 方法 | 端点 | 描述 |
|---|---|---|
| 得到 | /api/corpora | 列出可用语料库 |
| 得到 | /api/books?corpus=hebrew | 列出有章节数的书籍 |
| 得到 | /api/passage?book=Genesis&chapter=1&verse_start=1 | 获取带注释的文本 |
| 得到 | /api/schema?corpus=hebrew | 语料库对象类型和特征 |
| 职位 | /api/search/words | 按形态特征搜索 |
| 职位 | /api/search/constructions | 结构模式匹配 |
| 得到 | /api/search/syntax-guide | 搜索模板语法文档 |
| 职位 | /api/search/advanced | 使用统计数据、计数或段落分组进行搜索 |
| 职位 | /api/search/continue | 基于光标的搜索结果分页 |
| 职位 | /api/search/comparative | 跨语料库搜索(希伯来语+希腊语) |
| 得到 | /api/features?node_types=word | 列出具有可选过滤功能的功能 |
| 得到 | /api/features/{feature} | 带有示例值的功能详细信息 |
| 得到 | /api/edges | 列出边缘特征(语言关系) |
| 得到 | /api/edges/{feature}?node=1 | 从节点获取边/向节点获取边 |
| 职位 | /api/compare/distribution | 比较各部分的特征分布 |
| 得到 | /api/lexeme/{lexeme} | 词素查找与出现 |
| 得到 | /api/vocabulary?book=Genesis&chapter=1 | 文章中的独特词汇 |
| 得到 | /api/context?book=Genesis&chapter=1&verse=1 | 单词的句法层次结构 |
| 职位 | /api/chat | LLM驱动的圣经分析 |
| 职位 | /api/chat-quiz | 人工智能辅助测验生成器 |
| 获取/发布 | /api/quizzes | CRUD测试 |
| 职位 | /api/quizzes/{id}/generate | 生成测验环节 |
MCP工具
当作为MCP服务器运行时,AI助手可以使用以下工具:
list_corpora,list_books,get_schema--语料库反思get_passage,get_word_context--文本检索search_words,search_constructions--语言搜索search_advanced,search_comparative--基于统计和跨语料库比较的高级搜索search_syntax_guide--搜索模板语法文档describe_feature,list_features--使用样本值进行特征发现list_edge_features,get_edge_features--语言关系探索compare_distribution--横断面特征分布比较get_lexeme_info,get_vocabulary--词汇查询build_quiz--构建并验证测验定义(返回JSON,无服务器端存储)
项目结构
src/context_fabric_mcp/
├── server.py # MCP server entry point
├── api.py # FastAPI HTTP layer
├── cf_engine.py # Context-Fabric data access
├── chat.py # Groq + OpenAI fallback LLM integration
├── models.py # Pydantic data models
├── quiz_engine.py # Quiz generation engine
├── quiz_models.py # Quiz data models
└── tools/ # MCP tool definitions
├── passage.py
├── schema.py
├── search.py
├── vocab.py
└── quiz.py
tests/
├── test_api.py
├── test_cf_engine.py
└── test_quiz.py人工智能辅助测验生成器
教师可以通过两种方式创建测验:
通过REST API(用于web前端)
POST /api/chat-quiz 接受自然语言描述并返回经过验证的测验定义:
{
"message": "Create a quiz on qal perfect verbs in Genesis 1-3, showing the gloss and asking for verbal stem and tense"
}AI探索文本,构建 QuizDefinition,根据语料库验证它,并返回带有预览的定义。然后,前端可以通过以下方式保存它 POST /api/quizzes.
通过MCP(适用于Claude Desktop等人工智能助手)
这 build_quiz 该工具允许人工智能助手交互式地构建测验定义。老师描述他们想要什么,人工智能用 search_words 和 get_passage,然后呼叫 build_quiz 以产生经过验证的定义。结果以可移植JSON的形式返回——服务器上没有存储任何内容。
测试
uv run pytest测试在首次运行时需要语料库数据(缓存在 ~/text-fabric-data/).
配置
| 变量 | 必填 | 描述 |
|---|---|---|
API_KEY | 推荐 | API身份验证的共享机密。所有请求必须包括 x-api-key 头球如果未设置,则允许所有请求。 |
PORT | 没有 | API服务器端口(默认值:8000) |
GROQ_API_KEY | 聊天 | 主要LLM提供者 /api/chat 和 /api/chat-quiz免费套餐 console.groq.com/keys. |
OPENAI_API_KEY | 否 | 可选回退提供程序。如果Groq价格有限/不可用,则自动使用。 |
OPENAI_FALLBACK_DAILY_LIMIT | 否 | 每天Max OpenAI回退调用以防止意外账单。默认值:50。 |
GROQ_MODEL | 否 | 覆盖Groq模型(默认值: llama-3.3-70b-versatile). |
OPENAI_MODEL | 否 | 覆盖OpenAI模型(默认值: gpt-4o-mini). |
部署
看 部署.md 有关部署到Fly.io、Railway或Docker的完整说明。
# Docker
docker build -t context-fabric-mcp .
docker run -p 8000:8000 context-fabric-mcp