Token导航 LogoToken导航TokenDH.com
Krypton Carevo Jmr MCP logo
AI代理stdio官方级别未说明来源级核验

Krypton Carevo Jmr MCP

MCP Server

一个基于MongoDB集成的MCP服务器实现,提供职位列表管理、数据库操作和实时职位分析功能。

工具数

4

提示词数

0

GitHub Stars

0

资源数

0
实时分析PythonClineAPI集成Cline

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

VinaSundar-Nat

提供方

VinaSundar-Nat

最后核验

2026/5/17 20:20

运行时

Python

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

python servers/jmr-svc/src/main.py

详细介绍

氪星。Carevo。JMR。主控程序

MCP(模型上下文协议)服务器实现,用于与MongoDB集成和可流式传输HTTP服务的作业列表和管理服务。

项目概述

该项目实现了一个现代化的MCP服务器,具有用于作业列表管理、数据库操作和实时作业分析的全面工具。它提供:

  • 作业列表管理:创建、检索和筛选工作列表
  • 作业视图跟踪:跟踪和分析职位列表视图
  • MCP资源:对工作列表和查看数据的基于URI的只读访问
  • MCP工具:人工智能模型集成的标准化工具定义
  • MongoDB集成:使用Beanie ODM异步数据库操作
  • REST API:基于Starlette的HTTP传输层

建筑

项目结构

Krypton.Carevo.JMR.MCP/
├── libraries/
│   └── jmr-lib/
│       ├── src/
│       │   ├── components/
│       │   │   ├── resources/
│       │   │   │   └── job_listing.py     # Job listing resources
│       │   │   └── tools/
│       │   │       ├── job_listing.py      # Job listing tools
│       │   │       └── schemas/            # JSON schema definitions
│       │   ├── models/
│       │   │   ├── domain/jobs/           # Job domain models
│       │   │   ├── context/               # Database context
│       │   │   └── handler/               # Tool & resource handler base
│       │   └── utility/                    # Logging and config
│       ├── pyproject.toml
│       └── requirements.txt
├── servers/
│   └── jmr-svc/
│       ├── src/
│       │   ├── main.py                     # FastMCP server entry
│       │   ├── config.py                   # Configuration management
│       │   ├── managers/                   # MongoDB context manager
│       │   ├── services/                   # MCP services
│       │   └── helpers/                    # Tool registration
│       ├── pyproject.toml
│       └── requirements.txt
├── docs/                                    # Documentation images
├── .vscode/                                 # VSCode configuration
└── README.md

主要特点

1.MCP资源和资源模板

资源通过基于URI的端点提供对作业列表数据的直接访问。这些是以JSON格式公开作业数据的只读端点。该项目现在遵循MCP规范,以区分直接资源和资源模板:

  • 直接资源 使用 uri 静态端点的属性(例如。, jobs://today).
  • 资源模板 使用 uriTemplate 具有参数的动态端点的属性(例如。, jobs://details/{job_id}jobs://views/{job_id}).

jobs://today(直接资源)

URI: jobs://today\ MIME类型: application/json\ 说明: 返回在当前日期或之后发布的所有活动职位列表。

jobs://details/{job_id}(资源模板)

URI模板: jobs://details/{job_id}\ MIME类型: application/json\ 说明: 获取单个作业列表的全面详细信息,包括查看次数。

jobs://views/{job_id}(资源模板)

URI模板: jobs://views/{job_id}\ MIME类型: application/json\ 说明: 检索特定作业列表的视图总数。

注: 现在可以使用以下工具发现和注册资源模板 uriTemplate 属性,遵循模型上下文协议(MCP)最佳实践。看 job_listing.pyresource_register.py 了解实施细节。

2.MCP工具

fetch_job_listings

使用高级过滤功能获取工作列表。

输入架构:

  • filter:带有可选条件的JobFilter对象:

- job_id:按作业ID筛选 - company:按公司名称筛选 - location:按工作地点筛选 - job_type:全职、兼职、合同制、实习生、临时工 - connection_type:现场、远程、混合动力 - skills:所需技能数组 - posted_from / posted_to:日期范围筛选 - operator:过滤条件的AND或or逻辑

答复: 作业对象列表(出于隐私考虑,视图数组除外)

create_job_listing

在数据库中创建新的作业列表。

输入架构:

  • job:填写包含所有必填字段的Job对象

答复: 已创建ID为的Job对象

create_job_view

跟踪用户对职位列表的看法。

输入架构:

  • job_id:职位列表的ID
  • user_id:查看作业的用户的ID

答复: 查看包含操作(创建/更新)和total_job_views计数的元数据

get_job_views

检索作业的视图计数和元数据。

输入架构:

  • jobid:作业ID

答复: 作业的查看记录列表

2.数据模型

工作

job_id: str (unique)
title: str
description: str
company: str
location: str
job_type: JobType (enum)
connection_type: ConnectionType (enum)
salary_range: Dict[str, Any]
posted_date: str
skills: List[str]
views: List[View] (not exposed in API)
source: str
created_at: str
updated_at: str
view_count: int (computed field)

职位筛选器

使用AND/OR运算符的作业查询的筛选条件。

视图

user_id: str
view_date: str

测试

使用mongosh进行MongoDB测试

使用mongosh验证数据持久性和结构:

MongoDB shell interaction

mongosh设置和使用

1.连接到MongoDB:

mongosh "mongodb://username:password@host:port/database"

2.验证作业集合:

// List all jobs
db.job.find().pretty()

// Find specific job
db.job.findOne({ job_id: "job_123456" })

// Search by company
db.job.find({ company: "Tech Innovations Inc" }).pretty()

// Check views on a job
db.job.findOne({ job_id: "job_123456" }).views

// Count total jobs
db.job.countDocuments()

// Find jobs with specific skills
db.job.find({ skills: { $in: ["Python", "FastAPI"] } }).pretty()

// Filter by location and job type
db.job.find({ 
  location: "Remote", 
  job_type: "Full Time" 
}).pretty()

3.验证视图数据:

// Check if views are being saved
db.job.findOne({ job_id: "job_123456" }, { views: 1 })

// Count views for a specific job
db.job.aggregate([
  { $match: { job_id: "job_123456" } },
  { $project: { view_count: { $size: "$views" } } }
])

// Find jobs sorted by view count
db.job.aggregate([
  { $addFields: { view_count: { $size: "$views" } } },
  { $sort: { view_count: -1 } },
  { $limit: 10 }
])

4.数据管理:

// Delete a job listing
db.job.deleteOne({ job_id: "job_123456" })

// Update job details
db.job.updateOne(
  { job_id: "job_123456" },
  { $set: { title: "New Title", updated_at: new Date().toISOString() } }
)

// Clear all views for a job (reset view tracking)
db.job.updateOne(
  { job_id: "job_123456" },
  { $set: { views: [] } }
)

配置

环境变量

位于 config.py:

  • MONGO_URI:MongoDB连接URI
  • MONGO_USERNAME:MongoDB用户名
  • MONGO_PASSWORD:MongoDB密码
  • MONGO_DB:数据库名称
  • API_ENDPOINT:API主机和端口
  • ORIGINS:CORS允许的来源

依赖项

核心:

  • fastapi:Web框架
  • uvicorn:ASGI服务器
  • pydantic:数据验证
  • pymongo:MongoDB驱动程序
  • beanie:MongoDB ODM
  • python-mcp:模型上下文协议

发展:

  • debugpy:Python调试器
  • pytest:测试框架

发展

安装

# Install project dependencies
./install.sh

# Or manually:
cd libraries/jmr-lib && pip install -e .
cd ../../servers/jmr-svc && pip install -e .

运行服务器

# Start development server
python servers/jmr-svc/src/main.py

# With debugging
# Use VSCode launch configuration: Debug JMR Service

数据库初始化

MongoDB客户端在中初始化 app_lifespan() 上下文管理器:

  • 使用连接池自动连接
  • Beanie ODM初始化
  • 使用ping进行连接健康检查

工具注册

工具通过注册 ToolRegister 帮手:

  1. 处理程序实现 BaseToolHandler
  2. 在中定义工具模式 @property tools
  3. 模式加载器将JSON模式转换为Python类型的注释
  4. FastMCP使用正确的签名注册工具

资源注册

资源通过以下方式注册 ResourceRegister 帮手:

  1. 处理程序实现 BaseResourceHandler
  2. 定义中的资源 @property resources 具有URI模式
  3. 实现 read_resource(uri) 处理基于URI的读取的方法
  4. FastMCP使用正确的URI路由注册资源

隐私和安全

  • 查看隐私:用户视图数据存储在数据库中,但从API响应中排除
  • 查看计数:通过公开可见 view_count 计算字段
  • 数据库排除:视图标记为 Field(default=[]) 用于存储,不包括在响应中 model_dump(exclude={'views'})

最近的更新

MCP资源实施

  • 为只读作业访问添加了三个基于URI的资源:

- jobs://today:今日发布的活跃招聘信息 - jobs://details/{job_id}:按ID列出的详细工作信息 - jobs://views/{job_id}:查看特定作业的计数

  • 资源提供具有隐私保护的JSON格式数据(视图除外)
  • 实现 BaseResourceHandler 用于资源处理架构
  • 与FastMCP集成的资源注册系统

模式外部化

  • 作业筛选器架构: components/tools/schemas/job_filter_schema.json
  • 创建作业模式: components/tools/schemas/job_schema.json
  • 作业视图架构: components/tools/schemas/job_view_schema.json

视图处理

  • 视图现在正确地持久化到MongoDB
  • 隐私保护:从获取/创建响应中排除的视图
  • 通过计算属性查看可用计数

类型系统

  • 使用适当的Python类型注释增强工具注册
  • MCP客户端兼容性的模式到类型转换
  • 对job_type和connection_type的完全枚举支持

调试

断点问题

如果断点未命中:

  1. 验证 .vscode/launch.json 配置
  2. 确保 justMyCode: false 已设置
  3. 检查PYTHONPATH是否包括图书馆和服务目录
  4. 重新启动Python解释器

已知问题

Postman中的动态资源发现

使用动态(模板)资源 uriTemplate (例如。, jobs://details/{job_id})在Postman中不能直接加载或发现。这是Postman解释MCP资源列表和模板的一个限制。

Dynamic Resource Issue in Postman

但是,动态资源已正确加载,并在Cline MCP官方客户端中可见:

Cline Detecting dynamic resources

在代理核心和MCP客户端集成后,将对动态URI的资源调用进行全面测试。在此之前,只有直接资源(静态URI)可以在Postman中可靠地测试。

许可证

内部工具-氪。Carevo。JMR。主控程序

目录标签

目录标签

实时分析PythonClineAPI集成职位管理本地部署MongoDB集成RESTAPIMCP协议

支持客户端

Cline

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

none

运行时(runtime,运行环境)

Python

工具数量(toolCount,工具数)

4

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdionone部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP