Skip to main content
Glama

Gitee MCP Server

让任意 AI 模型用自然语言管理 Gitee 仓库的 MCP Server。

License: MIT npm version Glama

一句话就能替你管 Gitee:"social-media-bot-cn-generic 现在多少 star?" "给这几个 issue 打上 bug 标签" "基于最近 commit 帮我生成一份中文 CHANGELOG 贴进 README"

本 Server 是 MCP(Model Context Protocol) 标准实现,可接入任何支持 MCP 的 AI 客户端(WorkBuddy / Claude Desktop / Cursor / 任意 Agent 框架)。


✨ 功能(v1)

工具

作用

get_repo_stats

仓库统计:star / fork / watch / 开放 issue 数

list_stargazers

列出点 star 的用户(⚠️ 需 PAT)

list_issues

列出 Issue,支持按状态/标签过滤

create_issue

新建 Issue(收需求/建任务)

update_issue

更新 Issue 状态/标签(自动打标签/关单)

generate_changelog

基于 commit 生成中文 CHANGELOG(Gitee 无原生 API,靠 commits 组合拼出)

资源gitee://repo/{owner}/{repo} —— 返回仓库统计 + 最近 5 条 commit 快照,AI 可直接读取。


Related MCP server: Gitingest MCP Server

🚀 快速开始

方式一:npx 直接运行(推荐,无需克隆)

npx -y gitee-mcp

首次运行会自动下载;默认 Mock 模式,无需 token 即可演示。

方式二:源码运行

git clone https://gitee.com/jokerbhind/gitee-mcp-server.git
cd gitee-mcp-server
npm install
npm run build
npm start          # 默认 Mock 模式,无需 token 即可演示

接 WorkBuddy / Claude Desktop

~/.workbuddy/mcp.json(或对应 MCP 配置)中加入:

{
  "mcpServers": {
    "gitee-mcp-server": {
      "command": "npx",
      "args": ["-y", "gitee-mcp"]
    }
  }
}

或使用本地构建产物(command 用绝对路径的 node,避免客户端不继承 PATH):

{
  "mcpServers": {
    "gitee-mcp-server": {
      "command": "C:/绝对路径/node.exe",
      "args": ["H:/绝对路径/gitee-mcp-server/build/index.js"]
    }
  }
}

🔑 真实模式(Real)

复制 .env.example.env 并填入 Gitee 私人令牌:

cp .env.example .env
# 编辑 .env:填入 GITEE_ACCESS_TOKEN

变量

说明

GITEE_ACCESS_TOKEN

Gitee 私人令牌(设置 → 私人令牌,勾选 projects 权限)。stargazers/subscribers 接口强制鉴权,无 token 会 401

GITEE_MODE

留空=自动判定;mock=强制演示;real=强制真实(缺 token 自动回退 mock 并告警)

Server 会自动从项目根目录的 .env 读取(无需设置 cwd),填好 token 后即自动切 Real 模式。


🐶 Dogfood 示例

本项目本身就用 generate_changelogjokerbhind/social-media-bot-cn-generic 生成 CHANGELOG。真实 commit 输出示例:

## CHANGELOG · jokerbhind/social-media-bot-cn-generic

> 基于最近 1 条 commit 自动生成(Gitee MCP Server)

### ✨ 新功能
- feat: 社媒客服 Bot 泛用版 Starter Kit _by PaulSeth(2026-09-03)_

这就是「gap filler」的溢价逻辑:Gitee 官方没有 CHANGELOG API,本 Server 用现成的 /commits 组合出人人想要的能力。


🧩 架构

AI 模型 ←→ MCP(STDIO) ←→ GiteeMcpServer
                                │
                         GiteeService(Mock/Real 双模式路由)
                           ├─ mock.ts  本地快照(无凭证可演示)
                           └─ api.ts   Gitee API v5(填 token 后生效)

Mock 模式让公开仓库也能 npm start 直接演示、被 Glama 自动收录,且不泄露任何凭证。


📦 发布与收录

目标

状态

做法

Gitee 公开仓

✅ 已上线

https://gitee.com/jokerbhind/gitee-mcp-server

GitHub 镜像仓

✅ 已上线

https://github.com/PaulSeth/gitee-mcp-server

npm

✅ 已发布 v0.1.0

https://www.npmjs.com/package/gitee-mcp

Glama

✅ 已提交并通过构建检查

提交 GitHub 镜像仓 URL 后由 Glama 自动生成镜像跑安全/质量检查

MCP Registry

⏳ 待发布

mcp-publisher login github + mcp-publisher publish(读仓库根 server.json

本项目的 CHANGELOG.md本 Server 的 generate_changelog 工具自己生成(dogfood)。

Glama 索引的是 GitHub 仓库,故需先将本仓库镜像到 GitHub 再提交。


🗺️ Roadmap(Phase 2,按需再做)

  • comment_on_issue/pr:AI 自动回复

  • webhook_auto_label:监听 Webhook 自动打标签

  • gitee_to_github_mirror:Gitee↔GitHub 双平台镜像

  • list_pulls / merge_pull:PR 管理

  • create_release:基于 CHANGELOG 自动发版


📄 License

MIT © 2026 Paul (Gitee: jokerbhind / GitHub: PaulSeth)

Available Tools

6 tools
create_issueB

在仓库新建 Issue(收需求/建任务)

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNo正文,可选
repoYes仓库名
ownerYes仓库所有者
titleYes标题
labelsNo逗号分隔标签,可选

TDQS

B3.2/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 behavioral burden. It says nothing about required permissions, whether the issue is mutable afterward, or what the caller receives. Only the implicit creation semantics are conveyed.

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?

A single short sentence with zero waste, front-loading the verb and resource immediately.

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

Completeness2/5

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

For a mutation tool with no annotations and no output schema, the description omits permissions, response behavior, and sibling routing. The schema documents parameters, but key behavioral context is missing.

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 100%, so all 5 parameters are documented in the schema itself. The description adds no field-level semantics beyond the verb/resource, so baseline 3 applies.

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?

States a specific verb and resource ('新建 Issue'), clear enough to distinguish from read-only siblings like list_issues or get_repo_stats. Not a 5 because it does not explicitly name or differentiate from the closest sibling update_issue.

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 parenthetical '收需求/建任务' implies intended use cases (collect requests / create tasks), giving implied guidance. But it does not state when to prefer this over update_issue or when-not to use.

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

generate_changelogB

基于最近 commit 生成中文 CHANGELOG(Gitee 无原生 API,靠 commits 组合)

ParametersJSON Schema
NameRequiredDescriptionDefault
maxNo最多取多少条 commit,默认 50
repoYes仓库名
ownerYes仓库所有者
since_tagNo从此 tag/分支之后的 commit,可选

TDQS

B3.3/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It does add real context: output is in Chinese and the changelog is composed from commits because Gitee has no native API, which signals derivation and potential fidelity limits. However, it says nothing about permissions, rate limits, where the changelog is written/returned, or whether repeat calls are idempotent.

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?

A single compact sentence with the core action front-loaded and the caveat appended in parentheses. No wasted text.

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?

There is no output schema and no annotations, yet the description does not say what is returned (markdown string? file path?), nor how the commit range interacts with since_tag/max. It is adequate for invocation but leaves the agent guessing about the result.

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 100%, so all four parameters (owner, repo, max, since_tag) are already documented in the schema. The description adds no parameter-level semantics beyond that, so the baseline of 3 applies.

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 states a specific verb+resource: generate a Chinese CHANGELOG from recent commits. It is clearly distinguishable from the sibling list (stats, stargazers, issues, etc.), though it does not explicitly name which sibling to prefer. The parenthetical clarifies the generation mechanism.

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

Usage Guidelines2/5

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

There is no explicit when-to-use guidance, no prerequisites (e.g., whether the repo must have tags, whether commits must exist), and no mention of alternatives. The only usage signal is implicit in '基于最近 commit'. An agent gets no routing help beyond the name.

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

get_repo_statsB

获取 Gitee 仓库统计:star/fork/watch 数、开放 issue 数

ParametersJSON Schema
NameRequiredDescriptionDefault
repoYes仓库名,如 social-media-bot-cn-generic
ownerYes仓库所有者,如 jokerbhind

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 the full behavioral burden. It implies a read-only aggregation but says nothing about authentication requirements, rate limits, caching/staleness of the counts, or whether private repos are supported — all relevant for a stats endpoint.

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?

A single compact sentence that front-loads the action and then lists the returned metrics. No filler, though it trades brevity for leaving behavior and usage unspecified.

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

Completeness4/5

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

For a simple two-parameter read tool with full schema coverage, the description is largely sufficient, and it usefully enumerates the returned metrics given no output schema exists. It lacks any note on auth or freshness, which is a minor gap.

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 100% and both parameters (owner, repo) are documented with examples in the schema, so the baseline is 3. The description adds no syntax or format detail beyond what the schema already provides.

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 states a specific verb and resource (获取 Gitee 仓库统计) and enumerates what is aggregated: star/fork/watch counts and open issue count. This distinguishes it from siblings like list_stargazers and list_issues, which enumerate individual items rather than return counts, though the differentiation is implicit rather than stated.

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

Usage Guidelines2/5

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

There is no statement of when to use this tool versus list_stargazers or list_issues, and no prerequisites (e.g., whether the repo must be public or whether auth is required). Usage is only implied by the fact that it returns counts.

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

list_issuesC

列出仓库 Issue,支持按状态/标签过滤

ParametersJSON Schema
NameRequiredDescriptionDefault
repoYes仓库名
ownerYes仓库所有者
stateNo默认 open
labelsNo逗号分隔标签,可选

TDQS

C2.9/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. It does not disclose that this is a read-only operation, how many issues are returned, pagination behavior, or ordering. For a listing tool with zero structured behavioral hints, this is a significant gap.

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?

A single front-loaded sentence with no filler; the resource and its filter capability come first. It is appropriately sized for an operation of this simplicity, though slightly terse given the missing behavioral context.

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?

The core purpose and filters are covered, but with no annotations and no output schema the description should say more about the read-only nature and return/pagination behavior. Adequate but with clear gaps for a 4-parameter listing tool.

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 100%, so repo, owner, state, and labels are already documented in the schema, including the state enum default. The description's mention of state/label filtering adds no syntax or format detail beyond what the schema provides, so the baseline 3 applies.

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?

States a specific verb+resource ('列出仓库 Issue') plus the supported filtering axes, so an agent knows this is a read-list tool. It does not differentiate itself from siblings like get_repo_stats or list_stargazers, but the verb/resource pair is unambiguous against create_issue/update_issue.

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

Usage Guidelines2/5

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

The sentence describes capability ('支持按状态/标签过滤') rather than when to pick this tool over get_repo_stats, list_stargazers, or the create/update siblings. No prerequisites, no exclusions, no alternative routing – usage is only implied by the name.

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

list_stargazersA

列出给仓库点 star 的用户(需 PAT,无凭证走 mock)

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo页码,默认 1
repoYes仓库名
ownerYes仓库所有者

TDQS

A4/5.0
Behavior4/5

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

Without annotations, the description carries full burden and does disclose key behavioral traits: it requires a PAT, and without credentials it falls back to mock data. This is valuable context about authentication and data reliability. However, it doesn't cover pagination behavior, rate limits, or return format details.

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?

A single, concise sentence that packs the core purpose and critical credential behavior without any waste. Front-loads the main action and appends the important auth caveat.

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

Completeness4/5

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

Given the tool's simplicity (list operation, 3 params, no output schema, no annotations), the description covers the essential purpose and the auth/mock behavior. It could be more complete by mentioning pagination or return format, but is largely sufficient for correct invocation.

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 100%, so the schema already documents all three parameters (page, repo, owner) with descriptions. The description adds no parameter-level meaning beyond what the schema provides. Baseline 3 is appropriate when schema does the heavy lifting.

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

Purpose5/5

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

States a specific verb (list) and resource (stargazers/users who starred the repo), clearly distinguishing this from siblings like get_repo_stats or list_issues. An agent can immediately understand the tool lists users who starred a repository.

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?

Implies usage context by noting PAT requirement and mock fallback, but does not explicitly state when to use this tool versus alternatives. No guidance on prerequisites or when-not-to-use scenarios beyond the credential note.

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

update_issueC

更新 Issue 状态或标签(自动打标签/关单)

ParametersJSON Schema
NameRequiredDescriptionDefault
repoYes仓库名
ownerYes仓库所有者
stateNo目标状态
labelsNo逗号分隔标签,可选
numberYesIssue 编号

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description carries the full burden for a mutation tool. It never states whether omitted fields (state or labels) are left unchanged, whether the update is partial or full-replace, what permissions are required, or whether closing is reversible. The '(自动打标签/关单)' phrasing is vague about what actually happens on the server side.

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?

A single short sentence with the resource front-loaded and no filler. It is efficient, though the parenthetical is cryptic rather than informative, so it is not maximally well-structured.

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

Completeness2/5

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

For a five-parameter mutation tool with no annotations, no output schema, and no return-value documentation, the description is far too thin. It leaves the agent without knowledge of partial-update semantics, permission requirements, or the effect of the automatic labeling/closing behavior it alludes to.

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 100% and all five parameters (owner, repo, number, state, labels) are documented in the schema, so the baseline is 3. The description echoes state and labels but adds no format or constraint detail beyond the schema's enum and comma-separated hint.

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 states a specific verb+resource ('更新 Issue 状态或标签') and names the two mutable fields, which distinguishes it from list_issues, create_issue, and the read-only siblings. It stops short of explicit sibling differentiation, but the verb+resource pairing is unambiguous.

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

Usage Guidelines2/5

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

There is no when-to-use guidance, no prerequisites, and no mention of alternatives such as create_issue when a new issue is needed. The parenthetical '(自动打标签/关单)' hints at automatic labeling/closing but does not explain the conditions under which an agent should invoke the tool.

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. 6 tool updatesv0.1.0
    • First observedcreate_issue
    • First observedgenerate_changelog
    • First observedget_repo_stats
    • First observedlist_issues
    • First observedlist_stargazers
    • First observedupdate_issue

TDQS

A3.5/5.0

Scored across 6 tools

Disambiguation5/5

Each tool addresses a distinct resource or action: repo stats, stargazers, issue listing, issue creation, issue updating, and changelog generation. No two tools overlap enough to cause misselection; get_repo_stats returns aggregate counts while list_issues returns issue objects.

Naming Consistency5/5

All names follow a consistent snake_case verb_noun pattern (get_repo_stats, list_stargazers, list_issues, create_issue, update_issue, generate_changelog). There are no mixed conventions or vague verbs.

Tool Count5/5

Six tools is well-scoped for a focused Gitee assistant covering stats, stargazers, issue management, and changelog. Each tool has a clear purpose and none appear redundant or trivial.

Completeness3/5

The issue surface has list/create/update but lacks get-issue detail, delete, and commenting, and there is no direct commit or PR access despite the generic server name. These are notable gaps, though some can be worked around via list_issues and update_issue.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers