TIMI CC MCP Patch Worker
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@TIMI CC MCP Patch Workergenerate a patch to fix the login bug"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
TIMI CC MCP Patch Worker
一个可本地安装、通过 STDIO 运行的 MCP 服务。它把调用方明确提供的代码上下文发送到 TIMI CC 的 OpenAI-compatible Responses 接口,并返回经过本地路径校验的 Git unified diff;它不会扫描或修改你的仓库。
非 TIMI CC 官方项目。外部模型调用会发送数据并可能产生费用,请先阅读 SECURITY.md。
功能
同步生成或审查候选补丁:
generate_patch、review_patch后台长任务:
submit_patch_job、get_patch_job、get_patch_result、cancel_patch_job本地能力查询:
get_capabilities(不调用 API)Responses SSE 流式接收,避免长请求期间完全无活动
严格限制补丁只能修改
allowed_paths中的路径拒绝二进制补丁、越权路径和超限响应
只持久化任务摘要、哈希、聚合进度和已校验结果,不持久化完整提示词、文件上下文或推理内容
Related MCP server: mcp-diff-system
安装
需要 Python 3.10 或更高版本。
git clone https://github.com/prelearn-code/timicc-mcp.git
cd timicc-mcp
python -m venv .venvLinux/macOS:
.venv/bin/python -m pip install -U pip
.venv/bin/python -m pip install -e .
export TIMICC_API_KEY="your-key"Windows PowerShell:
.venv\Scripts\python.exe -m pip install -U pip
.venv\Scripts\python.exe -m pip install -e .
$env:TIMICC_API_KEY = "your-key"不要把真实密钥写进 Git、TOML 示例或命令历史。推荐通过操作系统的密钥管理或在启动 MCP 客户端前设置环境变量。
接入 Codex
将 config.example.toml 复制到 ~/.codex/config.toml,并替换 Python 的绝对路径。Windows 的 command 应改为类似:
command = "C:/absolute/path/timicc-mcp/.venv/Scripts/python.exe"重启 Codex 后运行 codex mcp list,或在 Codex 中输入 /mcp。示例使用 env_vars 转发已存在的环境变量,并将工具审批设为 prompt,因为每次模型调用都可能发送代码并产生费用。
其他支持 STDIO 的 MCP 客户端可用相同入口启动:
/absolute/path/.venv/bin/python -m timicc_worker.server配置
环境变量 | 用途 | 默认值 |
| API 密钥(也兼容 | 无 |
| Responses API 地址 |
|
| 额外允许的模型 ID,逗号分隔 | 无 |
| 后台任务数据库目录 | 操作系统的用户 state 目录 |
| 后台并发数 |
|
默认允许 gpt-5.6-sol、gpt-5.5 和 gpt-5.4。如果兼容网关提供其他 gpt-* 模型,可通过 TIMICC_MODELS 显式添加。
开发与验证
测试不会调用真实 API:
.venv/bin/python -m pip install -e ".[dev]"
.venv/bin/python -m pytest -q
.venv/bin/python -m buildGitHub Actions 会在 Linux、Windows 和 macOS 的 Python 3.10/3.13 上运行相同验证。
安全模型
返回的补丁始终是不可信候选内容。调用方仍需审查完整 diff、应用补丁并运行格式化、lint、构建和测试。allowed_paths 只能约束输出补丁路径,不能识别输入中是否包含敏感数据。
Available Tools
7 toolscancel_patch_jobB
Request cancellation of a background patch job.
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The phrase 'Request cancellation' hints at an async operation but does not disclose side effects, success/failure behavior, or whether cancellation is guaranteed. With no annotations, the description carries full responsibility and is insufficient for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no unnecessary words, making it perfectly concise and front-loaded with the core purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no annotations, the description should explain what happens after cancellation (e.g., whether to poll with get_patch_job, error conditions, or if the job stops immediately). It lacks this context, making it incomplete for an agent to predict behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides only the parameter name 'job_id' as a string. The tool description adds the context that the tool acts on a background patch job, implying job_id identifies that job. However, it does not elaborate on format or constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Request cancellation') and the resource ('background patch job'). It distinguishes itself from sibling tools like submit_patch_job and get_patch_job by focusing on the cancellation action.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when a background patch job needs to be cancelled, but it does not provide explicit guidance on when not to use it or mention alternatives such as checking status with get_patch_job after requesting cancellation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_patchC
Generate a validated candidate unified diff without editing the repository.
| Name | Required | Description | Default |
|---|---|---|---|
| task | Yes | ||
| model | No | gpt-5.6-sol | |
| constraints | No | ||
| file_context | Yes | ||
| allowed_paths | Yes | ||
| test_failures | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description carries the burden. It adds that it does not edit the repository, which is useful safety information. However, it doesn't explain what 'validated' means, whether tests are run, or what the output looks like.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no filler, which is efficient and front-loaded. It earns its place by stating the core purpose and a key safety property, but it is brief and does not elaborate on structure or use cases.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 6 parameters (3 required) and no output schema, the description is highly incomplete. It does not explain any parameters, the meaning of 'validated', or what the agent will receive. The sibling tools suggest a complex workflow, but this description lacks the necessary context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description provides no parameter information. The agent cannot understand the meaning or formatting of 'task', 'file_context', 'allowed_paths', or other parameters from the description alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool generates a validated candidate unified diff and explicitly notes it does not edit the repository. This distinguishes it from editing tools, but it does not explicitly differentiate it from sibling tools like review_patch or submit_patch_job.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool vs alternatives. It does not mention prerequisites, typical workflows, or exclusions. The only hint is that it is non-editing, but no explicit 'use this when...' or comparison to siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_capabilitiesA
Return local worker capabilities without calling the external model.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It explicitly states that no external model is called, which is a key behavioral detail that indicates a local, side-effect-free operation. This goes beyond a simple 'gets capabilities' and helps the agent understand the tool's safety and performance profile.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that front-loads the action and resource. Every word adds value, with no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter tool with no output schema, the description is sufficient. It clearly states what the tool does and its key behavioral trait (no external call). The sibling tools are all unrelated, making this tool's purpose stand out. No additional detail is needed for correct selection and invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so there is no need for parameter explanation. The description correctly focuses on the tool's purpose rather than parameter details, earning the baseline score of 4 for no-parameter tools.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Return') and a clear resource ('local worker capabilities'), and adds a distinguishing qualifier ('without calling the external model'). This makes the tool's purpose unambiguous and separates it from sibling patch-related tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'without calling the external model' implies a lightweight, local check that can be used to avoid external calls. This provides clear context for when to use the tool, though it does not explicitly mention when not to use it or name alternative tools. Sibling tools are all patch operations, so the use case is sufficiently clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_patch_jobC
Get the current status of a background patch job.
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the full burden. It states 'Get the current status,' which implies a non-destructive read, but it does not disclose behavior such as error handling, whether the job must exist, or what the response contains. Without annotations, this is a significant gap for a tool that may need to handle missing job IDs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no extraneous words. It delivers the core purpose efficiently, making it easy to parse and understand.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter tool, the description provides minimal but adequate context: it tells the agent what the tool does and implies the job_id parameter. However, it lacks any mention of return values, error conditions, or use cases, and with no output schema and no annotations, the agent is left with some uncertainty. It is functional but not rich.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema lists one parameter, job_id, with no description, and schema description coverage is 0%. The description does not mention job_id or explain its semantics, forcing the agent to infer from the tool name that it identifies the job. This does not compensate for the lack of schema documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's action: 'Get the current status of a background patch job.' This specifies a verb and resource, and implies a read operation. However, it does not explicitly differentiate itself from sibling 'get_patch_result', which could be confused as similar, so it doesn't fully distinguish among siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like get_patch_result or cancel_patch_job. The description lacks any context about prerequisites or scenarios, so an agent gets no help in choosing this tool over its siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_patch_resultB
Return a completed validated patch job result, or its current status.
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of behavioral disclosure. It discloses that the tool returns a result for completed jobs or a status otherwise, which is useful. However, it does not explain what 'validated' means, what status values exist, or what the result contains, leaving gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no fluff. Every word contributes meaning, making it highly concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter getter with no output schema or annotations, the description covers the main behavior but lacks details about return value structure, possible statuses, or error handling. It is minimally viable but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not mention job_id at all. Although job_id is self-explanatory from the schema title, the description adds no semantic value or guidance about how to obtain or format the job_id.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns a completed validated patch job result or its current status, using a specific verb and resource. It does not explicitly differentiate from sibling get_patch_job, but the focus on 'result' versus 'job' provides reasonable distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance is given on when to use this tool versus alternatives like get_patch_job. The phrase 'completed validated' implies it should be used after a patch job has been processed, but this is only implicit and not actionable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
review_patchA
Review an untrusted candidate patch and return a corrected replacement diff, or an empty patch when no correction is justified.
| Name | Required | Description | Default |
|---|---|---|---|
| task | Yes | ||
| model | No | gpt-5.6-sol | |
| constraints | No | ||
| file_context | Yes | ||
| test_results | No | ||
| allowed_paths | Yes | ||
| candidate_patch | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses key behavioral traits: the tool returns a corrected diff or an empty patch when no correction is justified, and it treats the patch as 'untrusted', implying a security-aware review. However, it does not elaborate on error handling, permission requirements, or side effects, leaving some gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that is concise and front-loaded with the action and purpose. It avoids redundancy and every word contributes to understanding the tool's function.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is minimal for a tool with 7 parameters, 4 required, and no output schema. It explains the core behavior but does not cover parameter relationships, expected input formats, or edge cases. An agent would need additional guidance to correctly invoke the tool, especially with zero schema descriptions and no annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not explain any of the 7 parameters. While parameter names like 'task', 'candidate_patch', and 'allowed_paths' are self-explanatory to a degree, the description adds no semantic value beyond the schema field names. The tool requires 4 parameters, but the description gives no guidance on how to fill them.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Review') and resource ('untrusted candidate patch'), and clearly states the output ('corrected replacement diff, or an empty patch'). This distinguishes it from sibling tools like generate_patch, which creates patches, and submit_patch_job, which manages jobs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the use case: reviewing an untrusted candidate patch and potentially returning a corrected diff. It establishes clear context but does not explicitly mention when not to use it (e.g., for patch generation) or name alternatives. The sibling tool names provide context, but the description itself lacks explicit exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
submit_patch_jobC
Submit a long-running patch generation job and return immediately.
| Name | Required | Description | Default |
|---|---|---|---|
| task | Yes | ||
| model | No | gpt-5.6-sol | |
| task_name | No | ||
| constraints | No | ||
| file_context | Yes | ||
| allowed_paths | Yes | ||
| test_failures | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits. It mentions 'long-running' and 'return immediately,' which conveys async behavior, but fails to state what is returned (e.g., a job ID), how to retrieve results, whether files are modified, or any auth requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no filler, making it very concise. However, the extreme brevity sacrifices needed detail, so it earns a 4 rather than 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has 7 parameters, no annotations, no output schema, and no parameter descriptions. The description only provides the vague notion of a long-running patch job, leaving the agent without enough context to invoke the tool correctly or understand the job lifecycle.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the description mentions no parameters. The required fields (task, file_context, allowed_paths) and optional fields (model, constraints, etc.) are completely unexplained, forcing the agent to guess their meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool submits a long-running patch generation job and returns immediately. The verb 'submit' and resource 'patch generation job' are specific, and the async nature distinguishes it from sibling tools like generate_patch or get_patch_result.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for long-running patch jobs (vs. presumably synchronous generate_patch) but does not explicitly state when to use it over alternatives, nor how it fits into the job lifecycle with get_patch_job/result or cancel_patch_job.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Most tools are clearly distinct: generate_patch and review_patch handle direct patch operations, while submit/get/get/cancel_patch_job manage background jobs. Some overlap exists between get_patch_job and get_patch_result, but descriptions clarify that one returns status and the other returns the final result, so confusion is unlikely.
All tool names follow a consistent verb_noun pattern using snake_case. Verbs (generate, review, submit, get, cancel) are descriptive and uniformly formatted, and nouns (patch, patch_job, patch_result, capabilities) are logical and predictable.
With 7 tools, the server is well-scoped for its purpose. It covers both synchronous patch generation/review and asynchronous job management without unnecessary bloat, and each tool fits within a clear workflow.
The tool surface covers the core patch lifecycle: generate, review, submit asynchronous job, retrieve status/result, and cancel. A minor gap is the lack of a list-all-jobs or delete-patch operation, but these are not essential for the primary use case.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Risk-scan a diff, flag AI-generated-code tells, find secrets. 5 of 7 tools need no account.
Security reviews for coding agents: diffs checked against your org policy and live infrastructure.
Git-native policy layer for AI agents: check_action verdicts against rules approved via PR.
Pre-commit code quality guardian. Detects semantic drift in AI-generated code.
Related MCP Servers
FlicenseAqualityDmaintenanceEnables AI agents to review code diffs for bugs, security issues, and bad patterns, and generate fixes.4- FlicenseNot gradedqualityCmaintenanceFetches, summarizes, and reviews GitHub code diffs with asynchronous processing for large diffs.
- AlicenseBqualityBmaintenanceGenerates or reviews Git unified diffs via DeepSeek API with local path validation, enabling secure patch suggestions without scanning repositories.7MIT
- AlicenseNot gradedqualityDmaintenanceEnables precise file patching using SEARCH/REPLACE blocks, with mandatory directory sandboxing, automatic Python QA (Ruff/Black/MyPy), and git versioning for rollback.1MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/prelearn-code/timicc-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server