HR数据查询服务器

一个生产级的模型上下文协议服务器,通过OData API将Claude(或任何MCP客户端)连接到SAP SuccessFactors,用于查询员工数据、管理权限、运行合规报告和管理HR操作。

  • by aiadiguru2025
  • Python
  • 本地部署
  • 9 星标
  • 更新于
在 GitHub 查看 aiadiguru2025/sf-mcp

使用说明

SuccessFactors-MCP

SAP SuccessFactors Model Context Protocol Server

Installation · Quick Start · 43 Tools · Deployment · API Reference


A生产级 模型上下文协议 将Claude(或任何MCP客户端)连接到的服务器 SAP SuccessFactors 通过OData API。查询员工数据、管理权限、运行合规报告和管理人力资源操作——所有这些都是通过自然语言完成的。

You: "Who on the Engineering team has a work anniversary this month?"

Claude: [calls get_anniversary_employees] Found 3 upcoming anniversaries...
         - Jane Smith (5 years - milestone!) - March 12
         - Bob Johnson (2 years) - March 18
         - Alice Chen (10 years - milestone!) - March 25

为什么选择SF-MCP?

挑战 SF-MCP解决方案
SAP SuccessFactors API复杂且冗长 43个专用工具 界面整洁
构建OData查询需要深厚的SF知识 自然语言 --用简单的英语问克劳德
API访问的安全问题 按请求身份验证、输入验证、审核日志记录
管理多个SF实例 21个数据中心 支持跨实例比较
API速率限制和性能 连接池、响应缓存、速率限制

工具

43种工具,分为13个类别:

Configuration & Discovery (3 tools)
工具 说明
get_configuration 检索任何实体的OData元数据
list_entities 发现所有可用的OData实体
compare_configurations 比较两个实例之间的实体配置
RBP Security (7 tools)
工具 说明
get_rbp_roles 列出所有基于角色的权限角色
get_role_permissions 获取特定角色的权限
get_user_permissions 获取用户的所有权限
get_user_roles 获取分配给用户的角色
get_permission_metadata 将UI标签映射到权限类型
check_user_permission 检查用户是否具有特定权限
get_dynamic_groups 列出权限组(动态组)
RBP Audit (2 tools)
工具 说明
get_role_history 查看角色的修改历史记录
get_role_assignment_history 查看角色分配的历史记录
Data Query (2 tools)
工具 说明
query_odata 具有过滤、分页功能的灵活OData查询
get_picklist_values 获取下拉/选择列表选项
Employee Lookup (4 tools)
工具 说明
get_employee_profile 完整的个人资料,包括工作信息、经理、可选薪酬
search_employees 按姓名、部门、地点或经理查找
get_employee_history 工作经历——晋升、调动、职称变更
get_team_roster 直接/间接报告的经理团队
Time Off (3 tools)
工具 说明
get_time_off_balances 假期、PTO、病假余额
get_upcoming_time_off 日期范围内的团队缺勤日历
get_time_off_requests 待处理/已批准的休假请求
Hiring & Onboarding (3 tools)
工具 说明
get_open_requisitions 带有状态和招聘经理的职位申请
get_candidate_pipeline 按申请阶段分列的候选人
get_new_hires 最近/即将入职的员工
Compliance & Reporting (3 tools)
工具 说明
get_terminations 终止员工离职处理
get_employees_missing_data 合规审计档案不完整
get_anniversary_employees 即将到来的表彰工作纪念日
Performance & Compensation (2 tools)
工具 说明
get_performance_review_status 审查整个组织的表格填写情况
get_compensation_details 包含经常性/非经常性组成部分的薪酬明细
Position Management (3 tools)
工具 说明
get_position_details 现任职位、部门、全职员工
get_vacant_positions 编制计划的空缺职位
get_org_chart 任何职位的组织层次结构(向上或向下)
MDF Objects (3 tools)
工具 说明
get_mdf_object_definitions 列出自定义MDF对象及其字段
query_mdf_object 查询任何MDF/通用对象(cust_*)
get_foundation_objects 查询基础对象(部门、成本中心等)
Workflow (2 tools)
工具 说明
get_pending_approvals 用户或全局的待定工作流项
get_workflow_history 审批步骤的审计跟踪
Monitoring & Admin (6 tools)
工具 说明
get_alert_notifications 系统警报和通知
get_scheduled_job_status 计划作业运行状态
get_integration_center_jobs 集成中心作业状态
get_api_quota_status 每个实例的速率限制使用
get_cache_status 缓存命中率和条目数
clear_cache 清除缓存的响应

安装

先决条件

  • Python 3.10+
  • 紫外线 包管理器
  • 具有API访问权限的SAP SuccessFactors帐户

设置

git clone https://github.com/aiadiguru2025/sf-mcp.git
cd sf-mcp
uv sync

快速开始

开发模式 (MCP检查员):

uv run mcp dev main.py

标准模式 (克劳德桌面):

uv run main.py

HTTP模式 (云运行/远程):

PORT=8080 uv run main.py

Claude桌面集成

第一步——找到通往 uv

# macOS / Linux
which uv

# Windows (PowerShell)
Get-Command uv | Select-Object -ExpandProperty Source

步骤2--编辑您的Claude桌面配置

操作系统 配置路径
macOS ~/Library/Application Support/Claude/claude_desktop_config.json
窗户 %APPDATA%\Claude\claude_desktop_config.json

添加sf-mcp服务器:

{
  "mcpServers": {
    "sf-mcp": {
      "command": "/path/to/uv",
      "args": ["--directory", "/path/to/sf-mcp", "run", "main.py"]
    }
  }
}

步骤3--重新启动克劳德桌面

MCP工具图标(锤子)将出现在输入区域,所有43个工具都可用。

注: 证书(auth_user_id 和 auth_password)在每次工具调用时都会提供这些参数——配置中没有存储任何内容。

部署

谷歌云运行

# Build and deploy
export PROJECT_ID=your-gcp-project-id
gcloud builds submit --tag gcr.io/$PROJECT_ID/sf-mcp
gcloud run deploy sf-mcp \
  --image gcr.io/$PROJECT_ID/sf-mcp \
  --platform managed \
  --region us-central1

然后将Claude Desktop指向远程URL:

{
  "mcpServers": {
    "sf-mcp": {
      "url": "https://sf-mcp-xxxxx-uc.a.run.app/mcp"
    }
  }
}

Docker(本地)

docker build -t sf-mcp .
docker run -p 8080:8080 sf-mcp

API密钥保护(可选)

集 MCP_API_KEY 要要求在HTTP端点上进行身份验证,请执行以下操作:

MCP_API_KEY=your-secret-key PORT=8080 uv run main.py

客户必须包括 X-API-Key: your-secret-key 在请求中。

配置

所有工具参数(data_center, environment, auth_user_id, auth_password)根据请求提供。服务器端环境变量是可选的:

速率限制

变量 默认值 描述
SF_RATE_LIMIT 100 每个实例每个窗口的最大请求数
SF_RATE_LIMIT_WINDOW 60 窗口持续时间(秒)
SF_RATE_LIMIT_WARN_THRESHOLD 0.8 使用率达到80%时发出日志警告
SF_RATE_LIMIT_RETRY_AFTER 5 429重试等待秒数
SF_RATE_LIMIT_MAX_RETRIES 3 最多429次重试尝试

响应缓存

变量 默认值 描述
SF_CACHE_TTL_METADATA 3600 元数据缓存TTL(1小时)
SF_CACHE_TTL_SERVICE_DOC 3600 服务文档缓存TTL(1小时)
SF_CACHE_TTL_PICKLIST 1800 选择列表缓存TTL(30分钟)
SF_CACHE_TTL_PERMISSIONS 3600 权限缓存TTL(1小时)
SF_CACHE_TTL_DEFAULT 0 默认TTL(0=禁用)
SF_CACHE_MAX_ENTRIES 1000 驱逐前的最大缓存条目数

终端保护

变量 默认值 描述
MCP_API_KEY (无) HTTP端点身份验证的API密钥

复制 .env.example 到 .env 自定义:

cp .env.example .env

支持的数据中心

6大洲的21个数据中心,支持别名:

数据中心 别名 位置 环境
DC2 DC57 荷兰 预览、生产、销售_demo
DC4 DC68 美国弗吉尼亚州 预览、生产、销售_demo
DC8 DC70 美国弗吉尼亚州阿什本 预览、生产、销售_demo
DC10 DC66 澳大利亚悉尼 预览、制作
DC12 DC33 德国 预览、生产
DC15 DC30 中国上海 预览、制作
DC17 DC60 加拿大多伦多 预览、制作
DC19 DC62 巴西圣保罗 预览、制作
DC22 -- 阿联酋迪拜 预览、制作
DC23 DC84 沙特阿拉伯利雅得 预览、生产
DC40 -- -- sales_demo
DC41 -- 美国弗吉尼亚州 预览、制作
DC44 DC52 新加坡 预览、制作
DC47 -- 加拿大中部 预览、制作
DC50 -- 日本东京 预览、制作
DC55 -- 德国法兰克福 预览、生产
DC74 -- 瑞士苏黎世 预览、生产
DC80 -- 印度孟买 预览、制作
DC82 -- 沙特阿拉伯利雅得 预览,生产

建筑

sf-mcp/
├── main.py                     # Entry point (stdio + HTTP modes)
├── sf_mcp/
│   ├── server.py               # FastMCP instance
│   ├── config.py               # DC mappings, constants, env vars
│   ├── auth.py                 # Credential resolution, API key middleware
│   ├── client.py               # HTTP client (OData, metadata, service doc, pagination)
│   ├── cache.py                # TTL-based response cache with deep-copy safety
│   ├── rate_limiter.py         # Sliding-window rate limiter (per-instance)
│   ├── validation.py           # 10 input validators with registry pattern
│   ├── decorators.py           # sf_tool decorator (cross-cutting concerns)
│   ├── dependencies.py         # FastMCP DI for schema exclusion
│   ├── logging_config.py       # Cloud Logging JSON formatter, audit_log()
│   ├── xml_utils.py            # Safe XML parsing (defusedxml), SAP date parsing
│   └── tools/                  # 43 tools across 13 modules
│       ├── configuration.py    # get_configuration, compare_configurations, list_entities
│       ├── permissions.py      # 7 RBP security tools
│       ├── audit.py            # Role history, role assignment history
│       ├── query.py            # query_odata, get_picklist_values
│       ├── employee.py         # Profile, search, history, team roster
│       ├── time_off.py         # Balances, upcoming absences, requests
│       ├── recruiting.py       # Requisitions, pipeline, new hires
│       ├── compliance.py       # Terminations, missing data, anniversaries, reviews, comp
│       ├── position.py         # Position details, vacancies, org chart
│       ├── workflow.py         # Pending approvals, workflow history
│       ├── mdf.py              # MDF object definitions, queries, foundation objects
│       ├── monitoring.py       # Alerts, scheduled jobs, integration jobs
│       ├── admin.py            # Rate limit quota, cache status, cache clear
│       └── utils.py            # Shared utilities (display_name)
├── tests/                      # 110 tests
├── Dockerfile                  # Cloud Run container
├── .env.example                # Configuration template
└── pyproject.toml              # Project metadata, dependencies, linter config

设计原则

零样板 --The sf_tool 装饰器处理请求ID生成、计时、审计日志、输入验证、凭证检查、错误处理和 $top 夹紧。工具函数仅包含业务逻辑。

缺省安全 -10个输入验证器(regex allowlists)、OData注入防止、XXE-safe XML解析(defosedxml)、定时安全API密钥比较(hmac.compare_dispest)以及日志中的自动凭证屏蔽。

生产就绪 --连接池(requests.Session)、突变安全响应缓存(put/get深度复制)、滑动窗口速率限制和自动429重试,以及与Cloud Logging兼容的JSON审计跟踪。

架构清理 --内部参数(request_id, start_time, api_host)通过FastMCP的依赖注入从MCP工具模式中隐藏,为LLM消费者保持工具接口的清洁。

安全

层 机制
输入验证 10个基于正则表达式的验证器;OData过滤器块列表检查原始+URL解码+双重解码输入
预防注射 实体路径、$select、$orderby、$filter、$expand均已验证;控制字符被拒绝
认证 按请求凭据(从未存储);定时安全API密钥比较通过 hmac.compare_digest
XML安全 defusedxml 防止XXE、实体扩展和DTD攻击
审核日志记录 每个工具调用都用结构化JSON记录;密码自动屏蔽
缓存安全 在存储和检索时进行深度复制,以防止突变错误
日期处理 所有SAP时间戳解析都使用显式UTC来防止时区不一致

测试

# Run all 110 tests
uv run pytest tests/ -v

# Run with coverage
uv run pytest tests/ --cov=sf_mcp

# Lint
uv run ruff check .

# Type check
uv run mypy sf_mcp/

测试覆盖范围包括:

  • 配置 --DC映射分辨率、不区分大小写、别名、错误情况
  • 验证 --所有10个验证器均具有有效/无效输入,防止注射
  • 客户 --模拟HTTP响应(200、401、500,空,连接错误)
  • 速率限制器 --限制执行、滑动窗口、每实例隔离、线程安全
  • 缓存 --Put/get、TTL到期、类别TTL、无效、驱逐、深度复制安全
  • 分页 --单页/多页,max_pages限制,错误处理,$跳过增量
  • 装饰器 --值注入、验证错误、max_top箝位、异常处理

API 参考

每个工具都接受这些常见参数:

参数 类型 必填 说明
instance string 是 SuccessFactors公司ID
data_center string Yes SAP数据中心代码(例如。, DC55, DC10)
environment string 是 preview, production,或 sales_demo
auth_user_id string 是 SuccessFactors用户ID(不带@instance)
auth_password string 是 SuccessFactors密码
Configuration Tools

get_configuration

检索SuccessFactors实体的OData元数据。

参数 类型 必填 说明
entity string Yes OData实体名称(例如。, User, Position)

list_entities

发现实例中所有可用的OData实体。

参数 类型 必填 说明
category string 否 foundation, employee, talent, platform,或 all

compare_configurations

比较两个实例之间的实体配置(例如,dev与prod)。

参数 类型 必填 说明
instance1 string 是 第一个实例
instance2 string 是 第二个实例
entity string 是 要比较的实体
data_center1 string 是 实例数据中心1
environment1 string 是 实例1的环境
data_center2 string 是 实例数据中心2
environment2 string 是 实例2的环境
RBP Security Tools

get_rbp_roles

参数 类型 必填 说明
include_description boolean 否 包含角色描述(默认值:false)

get_role_permissions

参数 类型 必填 说明
role_ids string 是 单个或逗号分隔: 10 或 10,20,30
locale string 否 标签的区域设置(默认值: en-US)

get_user_permissions

参数 类型 必填 说明
user_ids string 是 单个或逗号分隔: admin 或 admin,user2
locale string 否 标签的区域设置(默认值: en-US)

get_user_roles

参数 类型 必填 说明
user_id string 是 要查找角色的用户ID
include_permissions boolean 否 还获取每个角色的权限(默认值:false)

get_permission_metadata

参数 类型 必填 说明
locale string 否 标签的区域设置(默认值: en-US)

check_user_permission

参数 类型 必填 说明
access_user_id string 是 有权检查的用户
target_user_id string 是 权限的目标用户
perm_type string 是 元数据中的权限类型
perm_string_value string 是 权限字符串值
perm_long_value string 否 权限长值(默认值: -1L)

get_dynamic_groups

参数 类型 必填 说明
group_type string 否 按组类型筛选
RBP Audit Tools

get_role_history

参数 类型 必填 说明
role_id string 否 按角色ID筛选
role_name string 否 按角色名称筛选
from_date string 否 开始日期(YYYY-MM-DD)
to_date string 否 结束日期(YYYY-MM-DD)
top integer 否 最大记录数(默认值:100,最大值:500)

get_role_assignment_history

参数 类型 必填 说明
role_id string 否 按角色ID筛选
user_id string 否 按用户ID筛选
from_date string 否 开始日期(YYYY-MM-DD)
to_date string 否 结束日期(YYYY-MM-DD)
top integer 否 最大记录数(默认值:100,最大值:500)

至少一个 role_id 或 user_id 是必需的。

Data Query Tools

query_odata

参数 类型 必填 说明
entity string 是 实体名称或密钥: User 或 User('admin')
select string 否 字段: userId,firstName,lastName
filter string 否 OData筛选器: status eq 'active'
expand string 否 导航属性: empInfo,jobInfoNav
top integer 否 最大记录数(默认值:100,最大值:1000)
skip integer 否 要跳过的记录
orderby string 否 排序: lastName asc
paginate boolean 否 自动获取所有页面(默认值:false)
max_pages integer 否 分页时的最大页数(默认值:10,最大值:50)

get_picklist_values

参数 类型 必填 说明
picklist_id string 是 选择列表ID: ecJobFunction, nationality
locale string 否 标签的区域设置(默认值: en-US)
include_inactive boolean 否 包括非活动值(默认值:false)
Employee Lookup Tools

get_employee_profile

参数 类型 必填 说明
user_id string 是 员工用户ID
include_compensation boolean 否 包括补偿(默认值:false)

search_employees

参数 类型 必填 说明
search_text string 否 部分名称搜索
department string 否 按部门筛选
location string 否 按位置筛选
manager_id string 否 筛选经理的报告
status string 否 active, inactive,或 all (默认值: active)
top integer 否 最大结果(默认值:50,最大值:200)

get_employee_history

参数 类型 必填 说明
user_id string 是 员工用户ID
include_compensation_changes boolean 否 包括薪资历史记录(默认值:false)

get_team_roster

参数 类型 必填 说明
manager_id string 是 经理的用户ID
include_indirect_reports boolean 否 包括报告的报告(默认值:false)
top integer 否 最大直接报告数(默认值:100,最大值:200)
Time Off Tools

get_time_off_balances

参数 类型 必填 说明
user_ids string 是 逗号分隔的用户ID(最多50个)
as_of_date string 否 截至日期的余额(YYYY-MM-DD)

get_upcoming_time_off

参数 类型 必填 说明
start_date string 是 范围开始(YYYY-MM-DD)
end_date string 是 范围结束(YYYY-MM-DD)
department string 否 按部门筛选
manager_id string 否 筛选到经理的团队
status string 否 approved, pending,或 all (默认值: approved)
top integer 否 最大结果(默认值:200,最大值:500)

get_time_off_requests

参数 类型 必填 说明
user_id string 否 筛选到员工
status string 否 pending, approved, rejected, cancelled,或 all (默认值: pending)
from_date string 否 日期后提交(YYYY-MM-DD)
top integer 否 最大结果(默认值:50,最大值:200)
Hiring & Onboarding Tools

get_open_requisitions

参数 类型 必填 说明
department string 否 按部门筛选
hiring_manager_id string 否 按招聘经理筛选
location string 否 按位置筛选
status string 否 open, filled, closed,或 all (默认值: open)
top integer 否 最大结果(默认值:100,最大值:500)

get_candidate_pipeline

参数 类型 必填 说明
requisition_id string 是 职位申请ID
include_rejected boolean 否 包括被拒绝的候选人(默认值:false)
top integer 否 最大结果(默认值:100,最大值:500)

get_new_hires

参数 类型 必填 说明
start_date_from string 是 日期(YYYY-MM-DD)当天/之后的雇佣人数
start_date_to string 是 在日期(YYYY-MM-DD)或之前招聘
department string 否 按部门筛选
top integer 否 最大结果(默认值:100,最大值:500)
Compliance & Reporting Tools

get_terminations

参数 类型 必填 说明
from_date string 是 范围开始(YYYY-MM-DD)
to_date string 是 范围结束(YYYY-MM-DD)
department string 否 按部门筛选
top integer 否 最大结果(默认值:100,最大值:500)

get_employees_missing_data

参数 类型 必填 说明
check_fields string 是 逗号分隔: email, phone, address, emergency_contact
department string 否 按部门筛选
top integer 否 最大结果(默认值:100,最大值:500)

get_anniversary_employees

参数 类型 必填 说明
from_date string 是 范围开始(YYYY-MM-DD)
to_date string 是 范围结束(YYYY-MM-DD)
milestone_years_only boolean 否 只有1、5、10、15、20、25+年(默认值:false)
department string 否 按部门筛选
top integer 否 最大结果(默认值:100,最大值:500)
Performance & Compensation Tools

get_performance_review_status

参数 类型 必填 说明
form_template_id string 否 按表单模板筛选
department string 否 按部门筛选
manager_id string 否 按经理筛选
status string 否 not_started, in_progress, completed,或 "" 为所有人
top integer 否 最大结果(默认值:100,最大值:500)

get_compensation_details

参数 类型 必填 说明
user_ids string 是 逗号分隔的用户ID(最多20个)
effective_date string 否 截至日期的薪酬(YYYY-MM-DD)
Position Management Tools

get_position_details

参数 类型 必填 说明
position_id string 是 位置ID

get_vacant_positions

参数 类型 必填 说明
department string 否 按部门筛选
location string 否 按位置筛选
top integer 否 最大结果(默认值:100,最大值:500)

get_org_chart

参数 类型 必填 说明
position_id string 是 起始位置ID
direction string 否 down 或 up (默认值: down)
levels integer 否 要遍历的级别(默认值:2,最大值:5)
MDF Object Tools

get_mdf_object_definitions

参数 类型 必填 说明
object_name string 否 特定MDF对象(例如。, cust_myObject).空=列出所有。

query_mdf_object

参数 类型 必填 说明
object_name string Yes MDF对象名称(例如。, cust_myObject)
select string 否 逗号分隔的字段
filter string 否 OData筛选器
top integer 否 最大结果(默认值:100,最大值:500)
skip integer 否 分页偏移
orderby string 否 排序顺序
effective_date string 否 生效日期筛选器(YYYY-MM-DD)

get_foundation_objects

参数 类型 必填 说明
object_type string 是 company, department, division, location, cost_center, job_code, job_function, pay_grade, pay_group, business_unit, event_reason, legal_entity
filter string 否 其他OData筛选器
top integer 否 最大结果(默认值:100,最大值:500)
include_inactive boolean 否 包括结束日期记录(默认值:false)
Workflow Tools

get_pending_approvals

参数 类型 必填 说明
user_id string 否 筛选到特定审批人
wf_request_id string 否 筛选到特定的工作流请求
top integer 否 最大结果(默认值:100,最大值:500)

get_workflow_history

参数 类型 必填 说明
wf_request_id string 是 工作流请求ID
top integer 否 最大结果(默认值:100,最大值:500)
Monitoring & Admin Tools

get_alert_notifications

参数 类型 必填 说明
from_date string 否 开始日期(YYYY-MM-DD)
to_date string 否 结束日期(YYYY-MM-DD)
top integer 否 最大结果(默认值:100,最大值:500)

get_scheduled_job_status

参数 类型 必填 说明
job_name string 否 按作业名称筛选
top integer 否 最大结果(默认值:50,最大值:500)

get_integration_center_jobs

参数 类型 必填 说明
job_name string 否 按作业名称筛选
status string 否 按状态筛选
top integer 否 最大结果(默认值:50,最大值:500)

get_api_quota_status

返回指定实例的当前速率限制使用情况。

get_cache_status

返回缓存命中率、按类别划分的条目计数和内存使用情况。

clear_cache

参数 类型 必填 说明
target_instance string 否 清除特定实例。清空=全部清除。

查询示例

用自然语言问克劳德:

查询 使用的工具
“显示销售部门的所有用户” search_employees
“jsmith有哪些权限?” get_user_permissions
“比较dev和prod之间的用户配置” compare_configurations
“下周谁在度假?” get_upcoming_time_off
“列出所有未完成的工程职位申请” get_open_requisitions
“jdoe还剩多少PTO?” get_time_off_balances
“显示3月份开始的所有新员工” get_new_hires
“这个月谁有10周年纪念日?” get_anniversary_employees
“我的团队的绩效评估情况如何?” get_performance_review_status
“显示John的完整工作历史” get_employee_history
“我们的实例中存在哪些自定义MDF对象?” get_mdf_object_definitions
“列出所有部门及其成本中心” get_foundation_objects
“是否有任何待处理的工作流审批?” get_pending_approvals
“检查我们的集成作业的状态” get_integration_center_jobs

常见成功因素实体

类别 实体
员工 用户、EmpEmpEmployment、EmpJob、PerPersonal、PerPhone、PerEmail
基础 FOCompany,FODepartment,FOJobCode,FOLocation,FOPayGrade
位置 位置、位置实体、位置矩阵关系
人才 目标、目标计划、绩效评估、能力
招聘 职位申请、候选人、求职申请

使用 list_entities 发现实例中的所有可用实体。

故障排除

Authentication Errors (HTTP 401)
  • 验证凭据格式:用户ID 没有 @instance
  • 确认密码正确
  • 确保API用户在SuccessFactors管理中心中具有适当的权限
Validation Errors

所有输入都经过验证,以防止注射攻击:

参数 规则
instance 仅限字母数字、下划线和连字符
entity 有效的OData实体名称模式
filter 没有被屏蔽的关键字($batch, $metadata, <script>等等)
locale 格式类似 en-US 或 de
select / orderby 有效的字段名称模式
Server Disconnected (Claude Desktop)
  1. 验证 uv 配置中的路径正确: which uv
  2. 检查日志: tail -f ~/Library/Logs/Claude/mcp*.log
  3. 手动测试: uv run mcp dev main.py
  4. 确保已安装Python 3.10+: python3 --version
Rate Limit Errors
  • 服务器自动重试HTTP 429响应(最多3次)
  • 使用 get_api_quota_status 检查当前使用情况
  • 通过以下方式增加限额 SF_RATE_LIMIT 环境变量
  • 缓存响应 SF_CACHE_TTL_DEFAULT 以减少API调用

依赖项

包装 版本 用途
fastmcp >=2.0.0 模型上下文协议SDK
请求: >=2.31.0 带连接池的HTTP客户端
debvedxml >=0.7.0 XXE安全XML解析
python dotenv >=1.0.0 加载环境变量
优维康 >=0.30.0 ASGI服务器用于HTTP传输

开发依赖关系: pytest、ruff、mypy

贡献

欢迎投稿!拜托:

  1. 分叉存储库
  2. 创建要素分支: git checkout -b feature/my-feature
  3. 运行测试: uv run pytest tests/ -v
  4. 运行linting: uv run ruff check .
  5. 提交您的更改
  6. 打开拉取请求

更新日志

看 更改日志.md 发布历史。

许可证

该项目根据 MIT许可证 --看看 许可证 文件以获取详细信息。


Built with FastMCP · Powered by Model Context Protocol