@amonstack/gitea-mcp 0.3.1 → 0.3.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,20 +1,50 @@
1
- # gitea-mcp
1
+ <p align="center">
2
+ <img alt="gitea-mcp" src="https://raw.githubusercontent.com/amonstack/gitea_mcp/master/docs/assets/gitea-mcp-banner.png" />
3
+ <h3 align="center">gitea-mcp</h3>
4
+ <p align="center">MCP server that exposes Gitea issues, labels, milestones, and comments as tools for AI assistants</p>
5
+ </p>
2
6
 
3
- [中文文档](https://github.com/amonstack/gitea_mcp/blob/master/README.zh-CN.md)
7
+ ---
4
8
 
5
- > MCP server that lets AI assistants manage Gitea repositories — issues, labels,
6
- > milestones, comments, and more via the Gitea API.
9
+ [![npm version](https://img.shields.io/npm/v/@amonstack/gitea-mcp?logo=npm)](https://www.npmjs.com/package/@amonstack/gitea-mcp)
10
+ [![codecov](https://codecov.io/gh/amonstack/gitea_mcp/branch/master/graph/badge.svg)](https://codecov.io/gh/amonstack/gitea_mcp)
11
+ [![license](https://img.shields.io/npm/l/@amonstack/gitea-mcp)](https://github.com/amonstack/gitea_mcp/blob/master/LICENSE)
12
+ [![Node](https://img.shields.io/node/v/@amonstack/gitea-mcp?logo=node.js)](https://www.npmjs.com/package/@amonstack/gitea-mcp)
13
+ [![TypeScript](https://img.shields.io/badge/TypeScript-strict-3178c6?logo=typescript&logoColor=white)](https://www.typescriptlang.org)
14
+ [![MCP](https://img.shields.io/badge/MCP-server-6f42c1?logo=modelcontextprotocol&logoColor=white)](https://modelcontextprotocol.io)
7
15
 
8
- ## What is gitea-mcp?
16
+ **English** | [中文文档](https://github.com/amonstack/gitea_mcp/blob/master/README.zh-CN.md)
9
17
 
10
- `gitea-mcp` is a [Model Context Protocol (MCP)](https://modelcontextprotocol.io/)
11
- server that exposes Gitea repository operations as tools. Once connected to an
12
- MCP client (Claude Desktop, opencode, Cursor, etc.), an AI assistant can list,
13
- create, update, and delete issues, labels, milestones, and comments on your
14
- Gitea instance — all through natural language.
18
+ `gitea-mcp` is a [Model Context Protocol (MCP)](https://modelcontextprotocol.io/) server that exposes Gitea repository operations as tools. Once connected to an MCP client (Claude Desktop, opencode, Cursor, etc.), an AI assistant can list, create, update, and delete issues, labels, milestones, and comments on your Gitea instance — all through natural language.
15
19
 
16
- The server communicates over stdio and wraps the [Gitea REST API
17
- (`/api/v1`)](https://docs.gitea.com/api/1.22/).
20
+ The server communicates over stdio and wraps the [Gitea REST API (`/api/v1`)](https://docs.gitea.com/api/1.22/).
21
+
22
+ ## Features
23
+
24
+ - **Full Gitea project management** — issues, labels, milestones, and comments via natural language
25
+ - **Zero-config auto-discovery** — reads `baseUrl`, `owner`, `repo`, and token from the project's git config; one global install serves many repos
26
+ - **Multi-source auth with failover** — tries `[gitea]` config tokens, `GITEA_TOKEN`, then the git credential store, advancing automatically on `401`/`403`
27
+ - **Action-scoped skills** — ships one skill per workflow (find, create, label, comment, plan milestones, …) for opencode, Claude Code, Cursor, and more
28
+ - **Client-agnostic** — works with any stdio-based MCP client; ships guidance prompts and on-demand reference resources too
29
+
30
+ ## Table of Contents
31
+
32
+ - [Features](#features)
33
+ - [Requirements](#requirements)
34
+ - [Installation](#installation)
35
+ - [Configuration](#configuration)
36
+ - [MCP Client Setup](#mcp-client-setup)
37
+ - [Available Tools](#available-tools)
38
+ - [AI Guidance & Skills](#ai-guidance--skills)
39
+ - [Development](#development)
40
+ - [Contributing](#contributing)
41
+ - [License](#license)
42
+
43
+ ## Requirements
44
+
45
+ - **Node.js ≥ 24** — uses the global `fetch`
46
+ - A **Gitea instance** (self-hosted or Gitea Cloud) reachable over HTTP
47
+ - A **Gitea API token** (or a git credential-store entry) for anything beyond reading public repositories
18
48
 
19
49
  ## Installation
20
50
 
@@ -324,6 +354,14 @@ npm ci
324
354
  For the full architecture — module layout, dependency graph, core patterns, and
325
355
  the guide to adding a new tool — see [`docs/architecture.md`](docs/architecture.md).
326
356
 
357
+ ## Contributing
358
+
359
+ Contributions are welcome!
360
+
361
+ - Found a bug or have a feature idea? Please [open an issue](https://github.com/amonstack/gitea_mcp/issues).
362
+ - Pull requests are gladly accepted. This repo follows [Conventional Commits](https://www.conventionalcommits.org/) and the workflow described in [`AGENTS.md`](AGENTS.md) — please skim it before your first PR.
363
+ - For the module layout, dependency graph, and the guide to adding a new tool, see [`docs/architecture.md`](docs/architecture.md).
364
+
327
365
  ## License
328
366
 
329
- MIT
367
+ [MIT](LICENSE) — Copyright (c) 2026 [amonstack](https://github.com/amonstack).
package/README.zh-CN.md CHANGED
@@ -1,19 +1,50 @@
1
- # gitea-mcp
1
+ <p align="center">
2
+ <img alt="gitea-mcp" src="https://raw.githubusercontent.com/amonstack/gitea_mcp/master/docs/assets/gitea-mcp-banner.png" />
3
+ <h3 align="center">gitea-mcp</h3>
4
+ <p align="center">MCP 服务端,将 Gitea 的议题、标签、里程碑与评论封装为工具,供 AI 助手调用</p>
5
+ </p>
2
6
 
3
- [English](https://github.com/amonstack/gitea_mcp/blob/master/README.md)
7
+ ---
4
8
 
5
- > 让 AI 助手通过 MCP 协议管理 Gitea 仓库 —— 议题、标签、里程碑、评论等功能,
6
- > 全部通过 Gitea API 实现。
9
+ [![npm version](https://img.shields.io/npm/v/@amonstack/gitea-mcp?logo=npm)](https://www.npmjs.com/package/@amonstack/gitea-mcp)
10
+ [![codecov](https://codecov.io/gh/amonstack/gitea_mcp/branch/master/graph/badge.svg)](https://codecov.io/gh/amonstack/gitea_mcp)
11
+ [![license](https://img.shields.io/npm/l/@amonstack/gitea-mcp)](https://github.com/amonstack/gitea_mcp/blob/master/LICENSE)
12
+ [![Node](https://img.shields.io/node/v/@amonstack/gitea-mcp?logo=node.js)](https://www.npmjs.com/package/@amonstack/gitea-mcp)
13
+ [![TypeScript](https://img.shields.io/badge/TypeScript-strict-3178c6?logo=typescript&logoColor=white)](https://www.typescriptlang.org)
14
+ [![MCP](https://img.shields.io/badge/MCP-server-6f42c1?logo=modelcontextprotocol&logoColor=white)](https://modelcontextprotocol.io)
7
15
 
8
- ## 这是什么?
16
+ [English](https://github.com/amonstack/gitea_mcp/blob/master/README.md) | **中文文档**
9
17
 
10
- `gitea-mcp` 是一个 [Model Context Protocol (MCP)](https://modelcontextprotocol.io/)
11
- 服务端,将 Gitea 仓库操作暴露为 MCP 工具。连接到 MCP 客户端(Claude Desktop、
12
- opencode、Cursor 等)后,AI 助手即可通过自然语言在 Gitea 实例上创建、查询、
13
- 更新和删除议题、标签、里程碑和评论。
18
+ `gitea-mcp` 是一个 [Model Context Protocol (MCP)](https://modelcontextprotocol.io/) 服务端,将 Gitea 仓库操作暴露为 MCP 工具。连接到 MCP 客户端(Claude Desktop、opencode、Cursor 等)后,AI 助手即可通过自然语言在 Gitea 实例上创建、查询、更新和删除议题、标签、里程碑和评论。
14
19
 
15
- 服务端通过 stdio 通信,封装了 [Gitea REST API
16
- (`/api/v1`)](https://docs.gitea.com/api/1.22/)。
20
+ 服务端通过 stdio 通信,封装了 [Gitea REST API (`/api/v1`)](https://docs.gitea.com/api/1.22/)。
21
+
22
+ ## 功能特性
23
+
24
+ - **完整的 Gitea 项目管理** —— 通过自然语言管理议题、标签、里程碑与评论
25
+ - **零配置自动发现** —— 从项目 git 配置读取 `baseUrl`、`owner`、`repo` 与令牌;一次全局安装即可服务多个仓库
26
+ - **多来源认证 + 自动容错** —— 依次尝试 `[gitea]` 配置令牌、`GITEA_TOKEN`、git 凭据存储,遇 `401`/`403` 自动切换
27
+ - **按动作划分的技能** —— 每个工作流一个技能(查找、创建、打标签、评论、规划里程碑……),适配 opencode、Claude Code、Cursor 等
28
+ - **客户端无关** —— 兼容任何基于 stdio 的 MCP 客户端;同时内置引导提示与按需参考资源
29
+
30
+ ## 目录
31
+
32
+ - [功能特性](#功能特性)
33
+ - [环境要求](#环境要求)
34
+ - [安装](#安装)
35
+ - [配置](#配置)
36
+ - [MCP 客户端配置](#mcp-客户端配置)
37
+ - [可用工具](#可用工具)
38
+ - [AI 引导与技能](#ai-引导与技能)
39
+ - [二次开发](#二次开发)
40
+ - [参与贡献](#参与贡献)
41
+ - [许可证](#许可证)
42
+
43
+ ## 环境要求
44
+
45
+ - **Node.js ≥ 24** —— 使用全局 `fetch`
46
+ - 一个可通过 HTTP 访问的 **Gitea 实例**(自托管或 Gitea Cloud)
47
+ - 一个 **Gitea API 令牌**(或 git 凭据存储条目),用于读取公开仓库以外的操作
17
48
 
18
49
  ## 安装
19
50
 
@@ -306,6 +337,14 @@ npm ci
306
337
  完整的架构说明(模块布局、依赖关系、核心模式,以及新增工具的指引)请参阅
307
338
  [`docs/architecture.md`](docs/architecture.md)。
308
339
 
340
+ ## 参与贡献
341
+
342
+ 欢迎贡献!
343
+
344
+ - 发现 bug 或有功能建议?请[提交一个 issue](https://github.com/amonstack/gitea_mcp/issues)。
345
+ - 欢迎提交 Pull Request。本仓库遵循 [Conventional Commits](https://www.conventionalcommits.org/),工作流见 [`AGENTS.md`](AGENTS.md) —— 首次 PR 前请先浏览一遍。
346
+ - 模块布局、依赖关系、核心模式以及新增工具的指引,请参阅 [`docs/architecture.md`](docs/architecture.md)。
347
+
309
348
  ## 许可证
310
349
 
311
- MIT
350
+ [MIT](LICENSE) —— 版权所有 (c) 2026 [amonstack](https://github.com/amonstack)。
package/dist/cli.d.ts CHANGED
@@ -1,2 +1,2 @@
1
1
  #!/usr/bin/env node
2
- export {};
2
+ export declare const TOP_LEVEL_USAGE = "Usage: gitea-mcp [command] [options]\n\nGitea MCP server \u2014 exposes Gitea issues, labels, milestones, and comments as\ntools for AI assistants. With no command, it starts the Model Context Protocol\nserver over stdio and auto-discovers baseUrl, owner, repo, and credentials from\nthe environment and the local git remote (.git/config).\n\nCommands:\n init Install bundled action skills into an AI tool's skills directory.\n\nOptions:\n -h, --help Show this help and exit.\n -V, --version Show version and exit.\n\nWith no command, gitea-mcp starts the MCP server. Run `gitea-mcp init --help`\nfor init-specific options.\n";
package/dist/cli.js CHANGED
@@ -1,8 +1,36 @@
1
1
  #!/usr/bin/env node
2
+ import { createRequire } from "node:module";
2
3
  import { runServer } from "./server.js";
3
4
  import { discoverConfig } from "./git-config.js";
5
+ const pkgVersion = createRequire(import.meta.url)("../package.json").version;
6
+ export const TOP_LEVEL_USAGE = `Usage: gitea-mcp [command] [options]
7
+
8
+ Gitea MCP server — exposes Gitea issues, labels, milestones, and comments as
9
+ tools for AI assistants. With no command, it starts the Model Context Protocol
10
+ server over stdio and auto-discovers baseUrl, owner, repo, and credentials from
11
+ the environment and the local git remote (.git/config).
12
+
13
+ Commands:
14
+ init Install bundled action skills into an AI tool's skills directory.
15
+
16
+ Options:
17
+ -h, --help Show this help and exit.
18
+ -V, --version Show version and exit.
19
+
20
+ With no command, gitea-mcp starts the MCP server. Run \`gitea-mcp init --help\`
21
+ for init-specific options.
22
+ `;
4
23
  const argv = process.argv.slice(2);
5
- if (argv[0] === "init") {
24
+ const head = argv[0];
25
+ if (head === "-h" || head === "--help" || head === "help") {
26
+ process.stdout.write(TOP_LEVEL_USAGE);
27
+ process.exit(0);
28
+ }
29
+ if (head === "-V" || head === "--version") {
30
+ process.stdout.write(`gitea-mcp ${pkgVersion}\n`);
31
+ process.exit(0);
32
+ }
33
+ if (head === "init") {
6
34
  // `gitea-mcp init [--tool <name>]` installs the bundled skills into a target
7
35
  // AI tool's skills directory. It needs no Gitea credentials, so it is
8
36
  // dispatched before the config-discovery logic below.
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEjD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAEnC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,MAAM,EAAE,CAAC;IACvB,6EAA6E;IAC7E,sEAAsE;IACtE,sDAAsD;IACtD,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;IACvD,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;QACnD,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC;QACnC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;AACL,CAAC;KAAM,CAAC;IACN,4EAA4E;IAC5E,6EAA6E;IAC7E,4EAA4E;IAC5E,4EAA4E;IAC5E,wEAAwE;IACxE,mEAAmE;IACnE,6EAA6E;IAC7E,mBAAmB;IACnB,MAAM,UAAU,GAAG,MAAM,cAAc,EAAE,CAAC,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;QAC/D,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC;QACnC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,CAAC,KAAK,CACX,qCAAqC,OAAO,CAAC,GAAG,EAAE,wDAAwD,CAC3G,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,SAAS,CACP,UAAU,CAAC,OAAO,EAClB,UAAU,CAAC,UAAU,EACrB,UAAU,CAAC,YAAY,EACvB,UAAU,CAAC,WAAW,CACvB,CAAC,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;QACvB,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC;QACnC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEjD,MAAM,UAAU,GAAI,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,iBAAiB,CAAyB,CAAC,OAAO,CAAC;AAEtG,MAAM,CAAC,MAAM,eAAe,GAAG;;;;;;;;;;;;;;;;CAgB9B,CAAC;AAEF,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACnC,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;AAErB,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;IAC1D,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;IACtC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,WAAW,EAAE,CAAC;IAC1C,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,UAAU,IAAI,CAAC,CAAC;IAClD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;IACpB,6EAA6E;IAC7E,sEAAsE;IACtE,sDAAsD;IACtD,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;IACvD,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;QACnD,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC;QACnC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;AACL,CAAC;KAAM,CAAC;IACN,4EAA4E;IAC5E,6EAA6E;IAC7E,4EAA4E;IAC5E,4EAA4E;IAC5E,wEAAwE;IACxE,mEAAmE;IACnE,6EAA6E;IAC7E,mBAAmB;IACnB,MAAM,UAAU,GAAG,MAAM,cAAc,EAAE,CAAC,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;QAC/D,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC;QACnC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,CAAC,KAAK,CACX,qCAAqC,OAAO,CAAC,GAAG,EAAE,wDAAwD,CAC3G,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,SAAS,CACP,UAAU,CAAC,OAAO,EAClB,UAAU,CAAC,UAAU,EACrB,UAAU,CAAC,YAAY,EACvB,UAAU,CAAC,WAAW,CACvB,CAAC,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;QACvB,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC;QACnC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;AACL,CAAC"}
package/dist/skills.d.ts CHANGED
@@ -1,7 +1,10 @@
1
+ export declare const USAGE = "Usage: gitea-mcp init [options]\n\nCopy every bundled action skill into an AI tool's skills directory so the tool\nloads them on next start. No Gitea credentials are required.\n\nOptions:\n -h, --help Show this help and exit.\n --tool <name> Target AI tool (default: opencode).\n --project Install into ./.<tool>/skills/ instead of its global skills dir.\n --dir <path> Install into this exact directory (overrides --tool and --project).\n\nSupported tools (<name>):\n amazon-q, antigravity, auggie, claude, cline, codex, codebuddy, continue,\n costrict, crush, cursor, factory, gemini, github-copilot, iflow, kilocode,\n opencode, qoder, qwen, roocode, windsurf";
1
2
  export interface InitOptions {
2
3
  tool: string;
3
4
  project: boolean;
4
5
  dir?: string;
6
+ /** Set by parseInitArgs when `-h` / `--help` is passed; runInitCommand prints usage and exits 0. */
7
+ help?: boolean;
5
8
  }
6
9
  /** A supported target tool and where its skills live. */
7
10
  export interface ToolTarget {
@@ -25,7 +28,9 @@ export declare function bundledSkillsDir(): string;
25
28
  * --project (./.<tool>/skills) > the tool's global skills dir.
26
29
  */
27
30
  export declare function resolveInstallDir(opts: InitOptions): string;
28
- /** Parse `gitea-mcp init [flags]`. Throws on unknown flags or missing values. */
31
+ /** Parse `gitea-mcp init [flags]`. Throws on unknown flags or missing values.
32
+ * `-h` / `--help` is returned as `opts.help = true` (not thrown) so the caller
33
+ * can print usage to stdout and exit 0 instead of treating it as an error. */
29
34
  export declare function parseInitArgs(argv: string[]): InitOptions;
30
35
  /**
31
36
  * Copy every skill (each subdirectory of `srcDir` containing a SKILL.md) into
package/dist/skills.js CHANGED
@@ -5,11 +5,18 @@ import { fileURLToPath } from "node:url";
5
5
  const BUNDLED_SKILLS_REL = ["assets", "skills"];
6
6
  const SKILL_FILENAME = "SKILL.md";
7
7
  const DEFAULT_TOOL = "opencode";
8
- const USAGE = `Usage: gitea-mcp init [--tool <name>] [--project] [--dir <path>]
9
- --tool <name> target AI tool (default: ${DEFAULT_TOOL})
10
- --project install into ./.<tool>/skills/ instead of the tool's global skills dir
11
- --dir <path> install into this exact directory (overrides --tool and --project)
12
- Supported tools:
8
+ export const USAGE = `Usage: gitea-mcp init [options]
9
+
10
+ Copy every bundled action skill into an AI tool's skills directory so the tool
11
+ loads them on next start. No Gitea credentials are required.
12
+
13
+ Options:
14
+ -h, --help Show this help and exit.
15
+ --tool <name> Target AI tool (default: ${DEFAULT_TOOL}).
16
+ --project Install into ./.<tool>/skills/ instead of its global skills dir.
17
+ --dir <path> Install into this exact directory (overrides --tool and --project).
18
+
19
+ Supported tools (<name>):
13
20
  amazon-q, antigravity, auggie, claude, cline, codex, codebuddy, continue,
14
21
  costrict, crush, cursor, factory, gemini, github-copilot, iflow, kilocode,
15
22
  opencode, qoder, qwen, roocode, windsurf`;
@@ -80,12 +87,18 @@ export function resolveInstallDir(opts) {
80
87
  return join(process.cwd(), target.projectSkillsDir);
81
88
  return target.globalSkillsDir();
82
89
  }
83
- /** Parse `gitea-mcp init [flags]`. Throws on unknown flags or missing values. */
90
+ /** Parse `gitea-mcp init [flags]`. Throws on unknown flags or missing values.
91
+ * `-h` / `--help` is returned as `opts.help = true` (not thrown) so the caller
92
+ * can print usage to stdout and exit 0 instead of treating it as an error. */
84
93
  export function parseInitArgs(argv) {
85
- const opts = { tool: DEFAULT_TOOL, project: false };
94
+ const opts = { tool: DEFAULT_TOOL, project: false, help: false };
86
95
  for (let i = 0; i < argv.length; i++) {
87
96
  const a = argv[i];
88
- if (a === "--project") {
97
+ if (a === "--help" || a === "-h") {
98
+ opts.help = true;
99
+ break;
100
+ }
101
+ else if (a === "--project") {
89
102
  opts.project = true;
90
103
  }
91
104
  else if (a === "--tool") {
@@ -106,9 +119,6 @@ export function parseInitArgs(argv) {
106
119
  else if (a.startsWith("--dir=")) {
107
120
  opts.dir = a.slice("--dir=".length);
108
121
  }
109
- else if (a === "--help" || a === "-h") {
110
- throw new Error(USAGE);
111
- }
112
122
  else {
113
123
  throw new Error(`Unknown argument: ${a}\n${USAGE}`);
114
124
  }
@@ -172,6 +182,10 @@ export async function installSkills(srcDir, destRoot) {
172
182
  */
173
183
  export async function runInitCommand(argv) {
174
184
  const opts = parseInitArgs(argv);
185
+ if (opts.help) {
186
+ process.stdout.write(USAGE + "\n");
187
+ return;
188
+ }
175
189
  const target = resolveTool(opts.tool);
176
190
  const destRoot = resolveInstallDir(opts);
177
191
  const installed = await installSkills(bundledSkillsDir(), destRoot);
@@ -1 +1 @@
1
- {"version":3,"file":"skills.js","sourceRoot":"","sources":["../src/skills.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"skills.js","sourceRoot":"","sources":["../src/skills.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@amonstack/gitea-mcp",
3
- "version": "0.3.1",
4
- "description": "MCP server for managing Gitea issues via API",
3
+ "version": "0.3.3",
4
+ "description": "MCP server that exposes Gitea issues, labels, milestones, and comments as tools for AI assistants",
5
5
  "repository": {
6
6
  "type": "git",
7
7
  "url": "https://github.com/amonstack/gitea_mcp.git"
@@ -27,6 +27,7 @@
27
27
  "test": "vitest run",
28
28
  "test:watch": "vitest",
29
29
  "test:integration": "vitest run --config vitest.integration.config.ts",
30
+ "test:coverage": "vitest run --coverage",
30
31
  "smoke": "node scripts/smoke.mjs",
31
32
  "scan": "gitleaks detect --source . --redact --report-format json -r .dist/leaks.json --no-banner"
32
33
  },
@@ -41,7 +42,7 @@
41
42
  "author": "amonstack",
42
43
  "license": "MIT",
43
44
  "engines": {
44
- "node": ">=18"
45
+ "node": ">=24"
45
46
  },
46
47
  "dependencies": {
47
48
  "@modelcontextprotocol/sdk": "^1.29.0",
@@ -49,6 +50,7 @@
49
50
  },
50
51
  "devDependencies": {
51
52
  "@types/node": "^25.9.1",
53
+ "@vitest/coverage-v8": "^4.1.10",
52
54
  "tsx": "^4.22.3",
53
55
  "typescript": "^6.0.3",
54
56
  "vitest": "^4.1.7"