MCP Hub
Back to servers

Copilot Leecher

An MCP server that enables users to review and refine AI outputs through a local web UI, returning feedback as free tool call results to save on GitHub Copilot premium requests. It allows for multiple rounds of iterative improvements within a single request session.

Stars
6
Forks
2
Updated
Feb 18, 2026
Validated
Feb 20, 2026

🧛 Copilot Leecher

English | 中文

Squeeze every drop out of your GitHub Copilot premium requests — turn follow-up prompts into free MCP tool calls.

Why This Exists

GitHub Copilot charges by premium requests (300/month on Pro; each Claude Opus 4.6 call costs 3 requests), not by tokens. Through experimentation, we discovered:

ActionCosts a Premium Request?
New user prompt✅ Yes
Follow-up in the same session✅ Yes
Tool call / MCP callNo

So the most cost-effective way to use Copilot is: pack as much work as possible into a single premium request.

The problem? Humans rarely express everything perfectly in one shot. Follow-up questions ("wait, also do X…") are inevitable — and each one burns another request.

Copilot Leecher solves this by providing a request_review MCP tool. When the agent finishes a task, it calls this tool and blocks — waiting for your feedback via a local web UI. Your feedback is returned as a tool call result (free!), not a new user prompt. The agent then acts on your feedback within the same request.

One prompt → review → refine → review → approve. All for the price of a single premium request.

How It Works

You (1 prompt)                    Copilot Agent
    │                                  │
    ├─── "Implement feature X" ────────►  (works on it…)
    │                                  │
    │                  request_review() │  ← MCP tool call (FREE)
    │                                  │
    │   ┌──────────────────────────────┤
    │   │ Web UI (localhost:3456)      │
    │   │ "Also handle edge case Y"   │  ← your feedback
    │   └──────────────────────────────┤
    │                                  │
    │                  (improves work…) │
    │                                  │
    │                  request_review() │  ← still FREE
    │   ┌──────────────────────────────┤
    │   │ "ok"                         │  ← approved
    │   └──────────────────────────────┤
    │                                  │
    │            ✅ Done ◄──────────────┤
    │                                  │
    Total premium requests used: 1

Quick Start

1. Install & Build

git clone https://github.com/user/copilot-leecher.git
cd copilot-leecher
npm install
npm run build

2. Configure VS Code

Add to your VS Code settings.json:

{
  "github.copilot.chat.mcp.servers": {
    "copilot-leecher": {
      "command": "node",
      "args": ["/absolute/path/to/copilot-leecher/dist/index.js"]
    }
  }
}

Replace the path with your actual absolute path.

3. Restart VS Code & Open Dashboard

Restart VS Code. The MCP server auto-starts an HTTP dashboard at http://127.0.0.1:3456.

4. Use It

In your Copilot Chat prompt or Agent Contract, instruct the agent:

After completing your work, call the request_review tool with a taskId and summary.
Wait for feedback. If approved, finish. Otherwise, improve and request review again.

Then open http://127.0.0.1:3456 to review and provide feedback.

Architecture

┌─────────────────┐   ┌─────────────────┐   ┌─────────────────┐
│  VS Code #1     │   │  VS Code #2     │   │  Browser        │
│  Copilot Agent  │   │  Copilot Agent  │   │  127.0.0.1:3456 │
└────────┬────────┘   └────────┬────────┘   └────────┬────────┘
         │ MCP                 │ MCP                  │ HTTP
    ┌────▼────┐           ┌────▼────┐                 │
    │MCP+HTTP │           │MCP only │                 │
    │Server #1│           │Server #2│                 │
    │(:3456)  │           │(skipped)│                 │
    └────┬────┘           └────┬────┘                 │
         └────────┬────────────┘                      │
                  ▼                                   │
    ┌──────────────────────────────────┐              │
    │  /tmp/copilot-reviewer-sessions/ │◄─────────────┘
    │  (file-system persistence)       │
    └──────────────────────────────────┘
  • The first MCP process binds port 3456 for the web dashboard.
  • Subsequent instances skip the HTTP server but share session data via the filesystem.

MCP Tool: request_review

ParameterTypeRequiredDescription
taskIdstringUnique task identifier (e.g. task-20260217-001)
summarystringBrief summary of work done (2-3 sentences)

Returns: { status, feedback, sessionId, reviewerUrl }

  • status: "approved" or "needs_revision"
  • feedback: The reviewer's text

HTTP API

MethodEndpointDescription
GET/api/sessionsList all sessions
GET/api/sessions/pendingList pending sessions
GET/api/sessions/:idGet session details
POST/api/sessions/:id/feedbackSubmit feedback { "feedback": "..." }
GET/api/healthHealth check

Agent Contract Template

Add this to your prompt / system instructions:

After completing all tasks, you MUST call the `request_review` tool.

- taskId: a unique identifier for the task
- summary: 2-3 sentences describing what you did

Then wait for expert feedback:
- "ok" / "approved" / "lgtm" → task complete, stop working
- anything else → improve your work based on the feedback, then call request_review again

NEVER finish without an approved review.
Full Agent Contract Example (click to expand)
# Agent Contract

## Review Requirements

### When to Request Review
After completing all task steps, you MUST call `request_review`.

### How to Call
- **taskId**: Use format `[type]-[date]-[seq]` (e.g. `feature-20260217-001`)
- **summary**: 2-3 sentences summarizing your work

### Handling Feedback
1. **Approved** ("ok" / "approved" / "lgtm"): Stop working, confirm completion
2. **Needs revision**: Read feedback, improve, call request_review again
3. **Timeout**: Inform user, offer to retry

### Rules
- ❌ NEVER finish without approved review
- ❌ NEVER skip the review step
- ✅ Always request review after completing work
- ✅ Keep improving until approved

Project Structure

src/
├── index.ts            # MCP server entry (auto-starts HTTP server)
├── reviewer-server.ts  # Express HTTP server + Web UI
├── types.ts            # TypeScript type definitions
└── shared-state.ts     # File-system-based session persistence

Development

npm run watch     # watch mode
npm run dev       # build + run MCP server

Troubleshooting

MCP Server won't connect?
Ensure an absolute path in settings.json and that dist/index.js exists. Check VS Code Output panel → "MCP Server" logs.

Port 3456 in use?
A second MCP instance auto-skips HTTP startup. Sessions are shared via /tmp/copilot-reviewer-sessions/ — one dashboard shows all.

Agent doesn't call request_review?
Make sure your Agent Contract / prompt explicitly requires it.

License

MIT


中文说明

薅 GitHub Copilot Premium Request 羊毛的勤俭玩法 —— 把追问变成免费的 MCP tool call。

为什么做这个

GitHub Copilot 按 premium request 次数计费(Pro 套餐每月 300 次,一次 Claude Opus 4.6 调用算 3 次),而不是按 token 计费。经过实验,我们发现:

操作消耗 Premium Request?
新的 user prompt✅ 是
同 session 中的追问/后续提问✅ 是
Tool call / MCP 调用

所以最划算的用法是:让一次 premium request 做尽可能多的事情

问题是,人很难一次性把需求表达清楚,追问在所难免——但每次追问都会额外消耗一个 request。

Copilot Leecher 提供了一个 request_review MCP tool。Agent 完成任务后调用此工具,进入阻塞等待状态,你在本地 Web UI 上给出反馈。反馈以 tool call result(免费!)的形式返回给 Agent,而不是新的 user prompt。Agent 在同一个 request 内继续工作。

一次 prompt → 审查 → 改进 → 审查 → 通过。全程只消耗一个 premium request。

简单来说:这个 MCP 服务"骗"大模型把你事实上的追问当成 tool call result 来处理。

工作原理

你 (1 条 prompt)                  Copilot Agent
    │                                  │
    ├─── "实现功能 X" ─────────────────►  (开始干活…)
    │                                  │
    │                  request_review() │  ← MCP tool call(免费)
    │                                  │
    │   ┌──────────────────────────────┤
    │   │ Web UI (localhost:3456)      │
    │   │ "边界情况 Y 也处理一下"       │  ← 你的反馈
    │   └──────────────────────────────┤
    │                                  │
    │                  (继续改进…)     │
    │                                  │
    │                  request_review() │  ← 仍然免费
    │   ┌──────────────────────────────┤
    │   │ "ok"                         │  ← 通过
    │   └──────────────────────────────┤
    │                                  │
    │            ✅ 完成 ◄──────────────┤
    │                                  │
    消耗的 premium request 总数: 1

快速开始

1. 安装 & 构建

git clone https://github.com/user/copilot-leecher.git
cd copilot-leecher
npm install
npm run build

2. 配置 VS Code

settings.json 中添加:

{
  "github.copilot.chat.mcp.servers": {
    "copilot-leecher": {
      "command": "node",
      "args": ["/你的绝对路径/copilot-leecher/dist/index.js"]
    }
  }
}

3. 重启 VS Code & 打开 Dashboard

重启 VS Code 后,MCP Server 会自动在 http://127.0.0.1:3456 启动 Web 审查界面。

4. 使用

在 Copilot Chat 提示词或 Agent Contract 中,指示 Agent:

完成所有工作后,调用 request_review 工具,附上 taskId 和工作摘要。
等待审查反馈:若反馈为 "ok" / "approved",结束任务;否则根据反馈改进后重新请求审查。
未通过审查不得结束工作。

然后打开 http://127.0.0.1:3456 进行审查并提交反馈。

Agent Contract 模板

完成所有任务后,你**必须**调用 `request_review` tool:

- taskId: 任务唯一标识(如 feature-20260217-001)
- summary: 2-3 句简要描述完成了什么

然后等待专家反馈:
- "ok" / "approved" / "lgtm" / "通过" → 结束工作
- 其他内容 → 根据反馈改进,然后再次调用 request_review

**重要:未通过审查不得结束工作!**
完整 Agent Contract 示例(点击展开)
# Agent Contract

## 审查要求

### 何时请求审查
完成所有任务步骤后,**必须**调用 `request_review`。

### 调用方式
- **taskId**: 格式 `[类型]-[日期]-[序号]`(如 `feature-20260217-001`)
- **summary**: 2-3 句描述你完成的工作

### 反馈处理
1. **通过**("ok" / "approved" / "lgtm" / "通过"):停止工作,确认完成
2. **需要改进**:阅读反馈,改进工作,再次调用 request_review
3. **超时**:告知用户,询问是否重新请求

### 规则
- ❌ 未经审查通过不得结束任务
- ❌ 不得跳过审查步骤
- ✅ 完成工作后立即请求审查
- ✅ 持续改进直到获批

常见问题

Q: MCP Server 无法连接?
确保 settings.json 中使用绝对路径,且 dist/index.js 存在。查看 VS Code 输出面板 → "MCP Server" 日志。

Q: 端口 3456 被占用?
第二个 MCP 实例会自动跳过 HTTP 启动。Session 通过 /tmp/copilot-reviewer-sessions/ 文件共享,同一个 Dashboard 可见所有实例的会话。

Q: Agent 不调用 request_review?
检查 Agent Contract 提示词中是否明确要求了。

许可证

MIT

Reviews

No reviews yet

Sign in to write a review