Skip to main content
Glama

pr-roast-mcp

用于吐槽你的拉取请求的 MCP 服务器。提供极其诚实且幽默的代码审查。

安装

claude mcp add pr-roast -- uv run --directory /path/to/pr-roast-mcp pr-roast-mcp

或者添加到你的 MCP 配置中:

{
  "mcpServers": {
    "pr-roast": {
      "command": "uv",
      "args": ["run", "--directory", "/path/to/pr-roast-mcp", "pr-roast-mcp"],
      "env": {
        "ANTHROPIC_API_KEY": "sk-ant-..."
      }
    }
  }
}

要求:已认证的 gh CLI,以及 ANTHROPIC_API_KEY 环境变量。

Related MCP server: MCP Git/PR Assist

使用方法

询问 Claude:

工具

roast_pr

吐槽特定的拉取请求。

参数

类型

描述

pr

string

PR 编号、owner/repo#123 或完整的 GitHub URL

roast_my_prs

列出你的 PR 以便选择一个进行吐槽。

参数

类型

默认值

描述

repo

string

当前仓库

owner/repo 格式的仓库

state

string

"open"

PR 状态:"open"、"closed" 或 "merged"

功能说明

  1. 通过 gh CLI 获取 PR 元数据和差异

  2. 发送给 Claude Haiku 进行吐槽

  3. 返回带有严重程度评级(🔥 到 🔥🔥🔥🔥🔥)的极其诚实的审查

  4. 结尾总是包含一个真诚的赞美

输出示例

🔥🔥🔥 代码审查:"Initiative Bonus"

你的测试非常详尽。简直是令人怀疑的详尽。一个 POST 端点写了 156 行代码?你基本上是在写一篇关于 HTTP 状态码的论文。

那个 selectChain 辅助函数简直是魔法咒语 —— 没人知道为什么 .select() 会返回它自己。加个注释解释一下你正在模仿的 Supabase API 吧。

新增 849 行,删除 7 行。比例是 121:1。对于一个“额外功能”来说,这太臃肿了。

严重程度:🔥🔥🔥 (修复迁移描述并简化模拟后即可合并)

Available Tools

2 tools
roast_my_prsB

List your PRs and pick one to roast.

Args: repo: Repository in owner/repo format. If not set, uses current repo. state: PR state — "open", "closed", or "merged" (default: open).

ParametersJSON Schema
NameRequiredDescriptionDefault
repoNo
stateNoopen

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It mentions listing PRs and picking one to roast, but doesn't disclose behavioral traits like whether this is read-only or destructive, authentication needs, rate limits, or what 'roast' actually does (e.g., generates feedback, marks as reviewed). The description is minimal and leaves key behaviors unspecified.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is appropriately sized with two sentences: one for the purpose and one for parameters. It's front-loaded with the main action, and the Args section is structured clearly. However, the first sentence could be more concise by integrating the parameter info more seamlessly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 2 parameters with no schema descriptions, an output schema exists, and no annotations, the description is moderately complete. It covers parameter meanings adequately but lacks behavioral context and doesn't leverage the output schema to explain return values. For a tool with 'roast' in the name, more detail on the roasting process would improve completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description compensates by explaining both parameters in the Args section: 'repo' specifies format and default behavior, and 'state' defines possible values and default. This adds meaningful semantics beyond the bare schema, though it doesn't cover all potential nuances (e.g., what 'current repo' means).

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states 'List your PRs and pick one to roast' which provides a clear verb ('list' and 'pick') and resource ('PRs'), but it's somewhat vague about what 'roast' entails. It distinguishes from sibling 'roast_pr' by implying this tool lists multiple PRs first, while 'roast_pr' likely roasts a specific PR. However, the purpose could be more specific about the roasting action.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage by listing PRs and selecting one to roast, but doesn't explicitly state when to use this vs. 'roast_pr'. It provides some context with default values in the args section, but lacks clear guidance on prerequisites, alternatives, or exclusions. Usage is somewhat implied rather than explicitly defined.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

roast_prA

Roast a pull request. Give it a PR number, owner/repo#number, or URL.

Args: pr: PR reference — "123", "owner/repo#123", or full GitHub URL.

ParametersJSON Schema
NameRequiredDescriptionDefault
prYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. While 'roast' suggests some form of critique or analysis, the description doesn't explain what the tool actually does operationally, what permissions are required, whether it's read-only or has side effects, what the output format is, or any rate limits. The description is insufficient for a tool with no annotation coverage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise and well-structured. The first sentence states the purpose, the second provides usage guidance with parameter examples, and every sentence earns its place. No wasted words or redundant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given that there's an output schema (which handles return values), the description doesn't need to explain outputs. However, for a tool with no annotations and a single parameter, the description should do more to explain what 'roast' means operationally and any behavioral characteristics. The parameter explanation is adequate but the overall behavioral context is insufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, but the description compensates by explaining the 'pr' parameter with examples of valid formats ('123', 'owner/repo#123', or full GitHub URL). This adds meaningful context beyond the bare schema. However, it doesn't explain constraints like maximum length, validation rules, or what happens with invalid formats.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Roast a pull request' with the verb 'roast' and resource 'pull request'. It distinguishes from the sibling tool 'roast_my_prs' by specifying this tool requires a PR reference while the sibling suggests working with multiple PRs. However, it doesn't fully explain what 'roast' means operationally.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context for when to use this tool by specifying the required PR reference format and showing examples. It distinguishes from the sibling 'roast_my_prs' by implication (this requires a specific PR reference while the sibling likely works with the user's PRs). However, it doesn't explicitly state when NOT to use this tool or provide explicit alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 2 tool updatesv0.1.0
    • First observedroast_my_prs
    • First observedroast_pr

TDQS

B3.3/5.0

Scored across 2 tools

Disambiguation5/5

The two tools have clearly distinct purposes: 'roast_my_prs' lists and selects PRs for roasting, while 'roast_pr' performs the roasting action on a specific PR. There is no overlap or ambiguity between these functions.

Naming Consistency5/5

Both tools follow a consistent 'verb_noun' pattern with 'roast' as the verb, making them predictable and readable. The naming is uniform across the set.

Tool Count2/5

With only 2 tools, the server feels thin for a PR roasting domain. It lacks tools for broader interactions like viewing roast history, managing roasts, or handling multiple repos, which limits its scope and utility.

Completeness2/5

The toolset is severely incomplete for a PR roasting server. It covers listing and roasting PRs but misses essential operations such as retrieving past roasts, updating or deleting roasts, or handling user feedback, leaving significant gaps in the domain coverage.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables automated GitHub Pull Request reviews using local Ollama, Cursor CLI, or Gemini CLI as AI providers. Supports customizable review prompts, comprehensive PR analysis, and optional auto-posting of reviews to GitHub.
    10 npm
    5
    MIT
  • -
    license
    Not graded
    quality
    Not graded
    maintenance
    Enables Git and GitHub pull request operations through Claude AI, including repository management, branch operations, commits, and PR creation/commenting. Streamlines development workflows by providing Git commands and GitHub API integration through natural language interactions.
    -
  • A
    license
    Not graded
    quality
    D
    maintenance
    Connects Claude to GitHub Pull Requests to fetch and filter code diffs for AI-assisted reviews. It enables listing open PRs and analyzing changes while automatically excluding binary and asset files to focus on relevant code.
    22
    MIT