{"_id":"@amonstack/gitea-mcp","_rev":"23-8a08145b0c25688d842775163aa7b01e","name":"@amonstack/gitea-mcp","dist-tags":{"latest":"0.7.0"},"versions":{"0.1.3":{"name":"@amonstack/gitea-mcp","version":"0.1.3","keywords":["mcp","gitea","issues"],"author":"","license":"MIT","_id":"@amonstack/gitea-mcp@0.1.3","maintainers":[{"name":"pengln","email":"pengsixiang82@gmail.com"}],"bin":{"gitea-mcp":"dist/cli.js"},"dist":{"shasum":"bc89b8267488a3995a54cdbeb2cb51dfd8be1cd3","tarball":"https://registry.npmjs.org/@amonstack/gitea-mcp/-/gitea-mcp-0.1.3.tgz","fileCount":16,"integrity":"sha512-zP/5X9Fk/K5Pis3F18lqnnfHIBJQukPygTWnKcwaOvsuYUuKeikTtziaUQRTVivv+DxayfiR857vsUi3+C1ZPg==","signatures":[{"sig":"MEUCIQDEFSNf4xuk42vRKT6hycCOb8cgV9EXiP0dNh3mHGKA7AIgGoM/FwHdGCK9mKghH0ELVz3OUZ/IbGdiGYG2WbhNCbo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":92646},"main":"dist/index.js","type":"module","gitHead":"d7a17f2da975f7d0abdbfe9a7cf2329b77702c01","scripts":{"dev":"tsx src/cli.ts","lint":"tsc --noEmit","test":"vitest run","build":"tsc","start":"node dist/cli.js","test:watch":"vitest","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"pengln","email":"pengsixiang82@gmail.com"},"_npmVersion":"11.13.0","description":"MCP server for managing Gitea issues via API","directories":{},"_nodeVersion":"24.16.0","dependencies":{"zod":"^4.4.3","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.3","vitest":"^4.1.7","typescript":"^6.0.3","@types/node":"^25.9.1"},"_npmOperationalInternal":{"tmp":"tmp/gitea-mcp_0.1.3_1780910975951_0.47267634879119624","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@amonstack/gitea-mcp","version":"0.1.4","keywords":["mcp","gitea","issues"],"author":"","license":"MIT","_id":"@amonstack/gitea-mcp@0.1.4","maintainers":[{"name":"pengln","email":"pengsixiang82@gmail.com"}],"bin":{"gitea-mcp":"dist/cli.js"},"dist":{"shasum":"04f8667a4bf5e98093bcc8484ac040b3d55387cb","tarball":"https://registry.npmjs.org/@amonstack/gitea-mcp/-/gitea-mcp-0.1.4.tgz","fileCount":16,"integrity":"sha512-aAIc0FUchwpm3enoFaoP4z2lC4kHgOS443sv+6wezPrWyZHcbtftt8bNVCkkiDhrbceG+s/BCgeo1dxtqlgbEA==","signatures":[{"sig":"MEYCIQDn2YQeIoOWvfF6FsteN9M9bokwwT9Ynj/iQBGn2k/cTQIhAICy6VGDAHso0l3Xv1YzR+qVeUl8Qx1jbqDhluIBLXJ9","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":92457},"main":"dist/index.js","type":"module","gitHead":"a46311dceab8b4fe571c2e46385f77c455c65f36","scripts":{"dev":"tsx src/cli.ts","lint":"tsc --noEmit","test":"vitest run","build":"tsc","start":"node dist/cli.js","test:watch":"vitest","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"pengln","email":"pengsixiang82@gmail.com"},"_npmVersion":"11.13.0","description":"MCP server for managing Gitea issues via API","directories":{},"_nodeVersion":"24.16.0","dependencies":{"zod":"^4.4.3","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.3","vitest":"^4.1.7","typescript":"^6.0.3","@types/node":"^25.9.1"},"_npmOperationalInternal":{"tmp":"tmp/gitea-mcp_0.1.4_1780911953665_0.6835562329345108","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@amonstack/gitea-mcp","version":"0.2.0","keywords":["mcp","gitea","issues"],"author":"","license":"MIT","_id":"@amonstack/gitea-mcp@0.2.0","maintainers":[{"name":"pengln","email":"pengsixiang82@gmail.com"}],"bin":{"gitea-mcp":"dist/cli.js"},"dist":{"shasum":"25e3131887ba60910a6d6a442a6c275c240c5f9a","tarball":"https://registry.npmjs.org/@amonstack/gitea-mcp/-/gitea-mcp-0.2.0.tgz","fileCount":31,"integrity":"sha512-+E/8m5ONKY+Eocn/CZ/6j6BDHAQqzTRwaTajyBxkGsczllMRW7FaQ9k40XsfuT3h1G/0bXlqqmQd448GTTXHqA==","signatures":[{"sig":"MEQCIFkNZJZKguKB+xVl4I5KJapMgJTBBBS+nZPSfmvG4Y38AiAeT0V6qgR2G4ZH5rsvn9AsIg19TFnaaU1hukoNJPUzSQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":146277},"main":"dist/index.js","type":"module","gitHead":"68bc0af0a6c1bfd838544ed75154379de4d52c48","scripts":{"dev":"tsx src/cli.ts","lint":"tsc -p tsconfig.json","test":"vitest run","build":"tsc -p tsconfig.build.json && npm run build:assets","smoke":"node scripts/smoke.mjs","start":"node dist/cli.js","test:watch":"vitest","build:assets":"node scripts/copy-assets.mjs","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"pengln","email":"pengsixiang82@gmail.com"},"_npmVersion":"11.16.0","description":"MCP server for managing Gitea issues via API","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"^4.4.3","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.3","vitest":"^4.1.7","typescript":"^6.0.3","@types/node":"^25.9.1"},"_npmOperationalInternal":{"tmp":"tmp/gitea-mcp_0.2.0_1783077541876_0.6960810874361139","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@amonstack/gitea-mcp","version":"0.2.1","keywords":["mcp","gitea","issues"],"author":{"name":"amonstack"},"license":"MIT","_id":"@amonstack/gitea-mcp@0.2.1","maintainers":[{"name":"pengln","email":"pengsixiang82@gmail.com"}],"homepage":"https://github.com/amonstack/gitea_mcp#readme","bugs":{"url":"https://github.com/amonstack/gitea_mcp/issues"},"bin":{"gitea-mcp":"dist/cli.js"},"dist":{"shasum":"3a8f3138933a9c8b4a795fe8990bc76c0a578c3d","tarball":"https://registry.npmjs.org/@amonstack/gitea-mcp/-/gitea-mcp-0.2.1.tgz","fileCount":34,"integrity":"sha512-fSh9WJzaM5vhdLtVftuGUlNWPb6KMZZt0DHVv0v/uzZAup1hDa5dWOKm4UsVYSSul4EtY60xt/x1wpO8lIITjQ==","signatures":[{"sig":"MEQCIBI8wkPlcKoa6Cx5ECvR/cdvTfyHysZ13nV/ObasjMusAiAMoexGWjRmeOT8QXy17Dg7WrFTzILJrjgnXV1PDlwFIQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":147378},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"gitHead":"059859703474c43892e183fb64ea4ef6aa166927","scripts":{"dev":"tsx src/cli.ts","lint":"tsc -p tsconfig.json","test":"vitest run","build":"tsc -p tsconfig.build.json && npm run build:assets","smoke":"node scripts/smoke.mjs","start":"node dist/cli.js","test:watch":"vitest","build:assets":"node scripts/copy-assets.mjs","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"pengln","email":"pengsixiang82@gmail.com"},"repository":{"url":"git+https://github.com/amonstack/gitea_mcp.git","type":"git"},"_npmVersion":"11.16.0","description":"MCP server for managing Gitea issues via API","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"^4.4.3","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.3","vitest":"^4.1.7","typescript":"^6.0.3","@types/node":"^25.9.1"},"_npmOperationalInternal":{"tmp":"tmp/gitea-mcp_0.2.1_1783079135029_0.7016879050790006","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"@amonstack/gitea-mcp","version":"0.2.2","keywords":["mcp","gitea","issues"],"author":{"name":"amonstack"},"license":"MIT","_id":"@amonstack/gitea-mcp@0.2.2","maintainers":[{"name":"pengln","email":"pengsixiang82@gmail.com"}],"homepage":"https://github.com/amonstack/gitea_mcp#readme","bugs":{"url":"https://github.com/amonstack/gitea_mcp/issues"},"bin":{"gitea-mcp":"dist/cli.js"},"dist":{"shasum":"4cf416276cbd9f1b8c2032e8096fad5cb710d888","tarball":"https://registry.npmjs.org/@amonstack/gitea-mcp/-/gitea-mcp-0.2.2.tgz","fileCount":35,"integrity":"sha512-S+X5UKB9P5WHrDMVIlh32Xv2dnDDCvqAxw9zxvMHdRMZXynD2hh9Axz2n6eMkY71BAgUe/7Tufk4saP3Md5pjQ==","signatures":[{"sig":"MEUCIGwBZD3dZzC7KoPaprTxrVNwnD1DD30u3+kTNLbkfVhqAiEA8aE5O1HCmHnhLO8FC5QOdA4tgKqDuVvuM7bmSOEZtUs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":162995},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"gitHead":"2f0d85631cf9ffdf36adf1bde3fcecdd94aa5105","scripts":{"dev":"tsx src/cli.ts","lint":"tsc -p tsconfig.json","test":"vitest run","build":"tsc -p tsconfig.build.json && npm run build:assets","smoke":"node scripts/smoke.mjs","start":"node dist/cli.js","test:watch":"vitest","build:assets":"node scripts/copy-assets.mjs","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"pengln","email":"pengsixiang82@gmail.com"},"repository":{"url":"git+https://github.com/amonstack/gitea_mcp.git","type":"git"},"_npmVersion":"11.16.0","description":"MCP server for managing Gitea issues via API","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"^4.4.3","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.3","vitest":"^4.1.7","typescript":"^6.0.3","@types/node":"^25.9.1"},"_npmOperationalInternal":{"tmp":"tmp/gitea-mcp_0.2.2_1783094208921_0.30902337178507944","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@amonstack/gitea-mcp","version":"0.3.0","keywords":["mcp","gitea","issues"],"author":{"name":"amonstack"},"license":"MIT","_id":"@amonstack/gitea-mcp@0.3.0","maintainers":[{"name":"pengln","email":"pengsixiang82@gmail.com"}],"homepage":"https://github.com/amonstack/gitea_mcp#readme","bugs":{"url":"https://github.com/amonstack/gitea_mcp/issues"},"bin":{"gitea-mcp":"dist/cli.js"},"dist":{"shasum":"3bb5054cebb78ef90731c63932091aaa57150f0f","tarball":"https://registry.npmjs.org/@amonstack/gitea-mcp/-/gitea-mcp-0.3.0.tgz","fileCount":39,"integrity":"sha512-XmFZvBVMo8rmEOnPdRs07FpGK5Aqz9dMpIouR6VcvGAoS1rXl0gIlCiSfKjgj/8TvOpPHUnPFpnlBf4FXU0pVw==","signatures":[{"sig":"MEUCIDajhSFjnw8SEuGBFqbyGi6XVxf8ClSe5BBOMhzD554LAiEAooG7ZSV/CyDqREvD0BRLltekDg82V4kRF+z9kmO2TSs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":189215},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"gitHead":"73f3ea6557b333f7b7f9818b3b18882eaedb58c4","scripts":{"dev":"tsx src/cli.ts","lint":"tsc -p tsconfig.json","test":"vitest run","build":"tsc -p tsconfig.build.json && npm run build:assets","smoke":"node scripts/smoke.mjs","start":"node dist/cli.js","test:watch":"vitest","build:assets":"node scripts/copy-assets.mjs","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"pengln","email":"pengsixiang82@gmail.com"},"repository":{"url":"git+https://github.com/amonstack/gitea_mcp.git","type":"git"},"_npmVersion":"11.16.0","description":"MCP server for managing Gitea issues via API","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"^4.4.3","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.3","vitest":"^4.1.7","typescript":"^6.0.3","@types/node":"^25.9.1"},"_npmOperationalInternal":{"tmp":"tmp/gitea-mcp_0.3.0_1783322500198_0.42594307032409495","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"@amonstack/gitea-mcp","version":"0.3.1","keywords":["mcp","gitea","issues"],"author":{"name":"amonstack"},"license":"MIT","_id":"@amonstack/gitea-mcp@0.3.1","maintainers":[{"name":"pengln","email":"pengsixiang82@gmail.com"}],"homepage":"https://github.com/amonstack/gitea_mcp#readme","bugs":{"url":"https://github.com/amonstack/gitea_mcp/issues"},"bin":{"gitea-mcp":"dist/cli.js"},"dist":{"shasum":"d5ad83ffb12a14ef022566935a8bfe7bb0af1d58","tarball":"https://registry.npmjs.org/@amonstack/gitea-mcp/-/gitea-mcp-0.3.1.tgz","fileCount":42,"integrity":"sha512-wKcbdEUb2OAI2BPGLjqSXquRN4z5bCBZQSPk0GYoHQDXL2rv0oSrnj3WuOCWJY+76KiSuXaFo31mIZnl4pgu7A==","signatures":[{"sig":"MEYCIQDIjKftjSgHfSLANuNogItiAfJGQ917taFkSsWYCNe5EwIhAM/cjOylC3vvuLtQTOzUMQrJm5Vh6QH5SBylYeCAfa9w","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":227325},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"gitHead":"94403bd1de40d52603b024581294b35fdf7396fa","scripts":{"dev":"tsx src/cli.ts","lint":"tsc -p tsconfig.json","scan":"gitleaks detect --source . --redact --report-format json -r .dist/leaks.json --no-banner","test":"vitest run","build":"tsc -p tsconfig.build.json && npm run build:assets","smoke":"node scripts/smoke.mjs","start":"node dist/cli.js","test:watch":"vitest","build:assets":"node scripts/copy-assets.mjs","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"pengln","email":"pengsixiang82@gmail.com"},"repository":{"url":"git+https://github.com/amonstack/gitea_mcp.git","type":"git"},"_npmVersion":"11.16.0","description":"MCP server for managing Gitea issues via API","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"^4.4.3","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.3","vitest":"^4.1.7","typescript":"^6.0.3","@types/node":"^25.9.1"},"_npmOperationalInternal":{"tmp":"tmp/gitea-mcp_0.3.1_1783336029564_0.24805972781640095","host":"s3://npm-registry-packages-npm-production"}},"0.3.2":{"name":"@amonstack/gitea-mcp","version":"0.3.2","keywords":["mcp","gitea","issues"],"author":{"name":"amonstack"},"license":"MIT","_id":"@amonstack/gitea-mcp@0.3.2","maintainers":[{"name":"pengln","email":"pengsixiang82@gmail.com"}],"homepage":"https://github.com/amonstack/gitea_mcp#readme","bugs":{"url":"https://github.com/amonstack/gitea_mcp/issues"},"bin":{"gitea-mcp":"dist/cli.js"},"dist":{"shasum":"80d19a67e33e544bb101364ba56a40b9c37030da","tarball":"https://registry.npmjs.org/@amonstack/gitea-mcp/-/gitea-mcp-0.3.2.tgz","fileCount":42,"integrity":"sha512-pD93ncFUuimRH77zntioHQFpEw12yp0iWmGbLs6Cz6I5d28REENeCYYFx5CJVEfsu7fq09mgmcs2vZ+UurxYeA==","signatures":[{"sig":"MEUCIDUkUXlEpU6lKH8UzLsjfnujENE8UZDWJU9Wc/JOdCf8AiEAzjU0vDCC+g/7q6JqlhzQnc/CmgGGStcz1lhcEdjVkwc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":236971},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"gitHead":"726c29b79300e67dcefda902cce940ae2900485c","scripts":{"dev":"tsx src/cli.ts","lint":"tsc -p tsconfig.json","scan":"gitleaks detect --source . --redact --report-format json -r .dist/leaks.json --no-banner","test":"vitest run","build":"tsc -p tsconfig.build.json && npm run build:assets","smoke":"node scripts/smoke.mjs","start":"node dist/cli.js","test:watch":"vitest","build:assets":"node scripts/copy-assets.mjs","test:coverage":"vitest run --coverage","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"pengln","email":"pengsixiang82@gmail.com"},"repository":{"url":"git+https://github.com/amonstack/gitea_mcp.git","type":"git"},"_npmVersion":"11.16.0","description":"MCP server that exposes Gitea issues, labels, milestones, and comments as tools for AI assistants","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"^4.4.3","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.3","vitest":"^4.1.7","typescript":"^6.0.3","@types/node":"^25.9.1","@vitest/coverage-v8":"^4.1.10"},"_npmOperationalInternal":{"tmp":"tmp/gitea-mcp_0.3.2_1783401837932_0.31399651191835964","host":"s3://npm-registry-packages-npm-production"}},"0.3.3":{"name":"@amonstack/gitea-mcp","version":"0.3.3","keywords":["mcp","gitea","issues"],"author":{"name":"amonstack"},"license":"MIT","_id":"@amonstack/gitea-mcp@0.3.3","maintainers":[{"name":"pengln","email":"pengsixiang82@gmail.com"}],"homepage":"https://github.com/amonstack/gitea_mcp#readme","bugs":{"url":"https://github.com/amonstack/gitea_mcp/issues"},"bin":{"gitea-mcp":"dist/cli.js"},"dist":{"shasum":"d03e80d88aef1a7ef31b65e2532b78901fac0096","tarball":"https://registry.npmjs.org/@amonstack/gitea-mcp/-/gitea-mcp-0.3.3.tgz","fileCount":42,"integrity":"sha512-Cn8GV++WtkkP3xG6wY6WknkRHLR5eEBA7Gb2GB2BgfT2M2UVNXCJSttJL1kgP6VyAgPwCiJOpzoKm8JHtZuKeA==","signatures":[{"sig":"MEUCIEucGluYOE9e6sA879RzdvUqlhqm0PzLcgOkCByZXf5hAiEAr3LtFYWIs/LYtcheIW8A4fdTq0BeqSQfuyJVfyMP0uw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":236971},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=24"},"gitHead":"7014bbb8f2545349f44fbb9301d09e55f363cda5","scripts":{"dev":"tsx src/cli.ts","lint":"tsc -p tsconfig.json","scan":"gitleaks detect --source . --redact --report-format json -r .dist/leaks.json --no-banner","test":"vitest run","build":"tsc -p tsconfig.build.json && npm run build:assets","smoke":"node scripts/smoke.mjs","start":"node dist/cli.js","test:watch":"vitest","build:assets":"node scripts/copy-assets.mjs","test:coverage":"vitest run --coverage","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"pengln","email":"pengsixiang82@gmail.com"},"repository":{"url":"git+https://github.com/amonstack/gitea_mcp.git","type":"git"},"_npmVersion":"11.16.0","description":"MCP server that exposes Gitea issues, labels, milestones, and comments as tools for AI assistants","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"^4.4.3","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.3","vitest":"^4.1.7","typescript":"^6.0.3","@types/node":"^25.9.1","@vitest/coverage-v8":"^4.1.10"},"_npmOperationalInternal":{"tmp":"tmp/gitea-mcp_0.3.3_1783410448854_0.5983548584418339","host":"s3://npm-registry-packages-npm-production"}},"0.3.4":{"name":"@amonstack/gitea-mcp","version":"0.3.4","keywords":["mcp","gitea","issues"],"author":{"name":"amonstack"},"license":"MIT","_id":"@amonstack/gitea-mcp@0.3.4","maintainers":[{"name":"pengln","email":"pengsixiang82@gmail.com"}],"homepage":"https://github.com/amonstack/gitea_mcp#readme","bugs":{"url":"https://github.com/amonstack/gitea_mcp/issues"},"bin":{"gitea-mcp":"dist/cli.js"},"dist":{"shasum":"01868402dbaa5ae2ef6006b6626464b3d2b620d6","tarball":"https://registry.npmjs.org/@amonstack/gitea-mcp/-/gitea-mcp-0.3.4.tgz","fileCount":42,"integrity":"sha512-OHFYDnuHiVYO8gePUldf40rO/ZlLd205+ttTfyESEwmyNyC2ChNeI1FcHMVPXfhoESwrG5pubq1calYqbM50Nw==","signatures":[{"sig":"MEQCIE7UQhxYCAztRMeXQ+dag1q6AQjGm4r0S53iOlzt5t9VAiAe/G7HiAvv4ouamc4xcMm3H3Iw8NwzAUA4k/ph5MjcPw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":249816},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=24"},"gitHead":"bcab13dd7e1fff401671f130b2737f4d44ce63a2","scripts":{"dev":"tsx src/cli.ts","lint":"tsc -p tsconfig.json","scan":"gitleaks detect --source . --redact --report-format json -r .dist/leaks.json --no-banner","test":"vitest run","build":"tsc -p tsconfig.build.json && npm run build:assets","smoke":"node scripts/smoke.mjs","start":"node dist/cli.js","test:watch":"vitest","build:assets":"node scripts/copy-assets.mjs","test:coverage":"vitest run --coverage","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"pengln","email":"pengsixiang82@gmail.com"},"repository":{"url":"git+https://github.com/amonstack/gitea_mcp.git","type":"git"},"_npmVersion":"11.16.0","description":"MCP server that exposes Gitea issues, labels, milestones, and comments as tools for AI assistants","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"^4.4.3","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.0","vitest":"^4.1.7","typescript":"^6.0.3","@types/node":"^26.1.0","@vitest/coverage-v8":"^4.1.10"},"_npmOperationalInternal":{"tmp":"tmp/gitea-mcp_0.3.4_1783616210225_0.9110057783724717","host":"s3://npm-registry-packages-npm-production"}},"0.3.5":{"name":"@amonstack/gitea-mcp","version":"0.3.5","keywords":["mcp","gitea","issues"],"author":{"name":"amonstack"},"license":"MIT","_id":"@amonstack/gitea-mcp@0.3.5","maintainers":[{"name":"pengln","email":"pengsixiang82@gmail.com"}],"homepage":"https://github.com/amonstack/gitea_mcp#readme","bugs":{"url":"https://github.com/amonstack/gitea_mcp/issues"},"bin":{"gitea-mcp":"dist/cli.js"},"dist":{"shasum":"7f5a6ec0ecb34993c2dd3bbb63b498b205b1631b","tarball":"https://registry.npmjs.org/@amonstack/gitea-mcp/-/gitea-mcp-0.3.5.tgz","fileCount":42,"integrity":"sha512-JdEauZqMNnN/JMKqmMF2quwVeXzzuKQOmoOqf6vzsVk9MflvAF2noqEomnLAwmKX2SOTrZXRn9GboKcafpUG9A==","signatures":[{"sig":"MEUCIQCNJEwq7EXkNoLq7DzM3YFqlq9w2ORD/cZ3Jb9klbVPnQIgSNOPSE02LKqLDEzSO4xsiLESQUXUd1pRBnANV8WfJtg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":257063},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=24"},"gitHead":"c9cbdfe4738840e64ea5cf79347f370ee7037f18","scripts":{"dev":"tsx src/cli.ts","lint":"tsc -p tsconfig.json","scan":"gitleaks detect --source . --redact --report-format json -r .dist/leaks.json --no-banner","test":"vitest run","build":"tsc -p tsconfig.build.json && npm run build:assets","smoke":"node scripts/smoke.mjs","start":"node dist/cli.js","test:watch":"vitest","build:assets":"node scripts/copy-assets.mjs","test:coverage":"vitest run --coverage","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"pengln","email":"pengsixiang82@gmail.com"},"repository":{"url":"git+https://github.com/amonstack/gitea_mcp.git","type":"git"},"_npmVersion":"11.16.0","description":"MCP server that exposes Gitea issues, labels, milestones, and comments as tools for AI assistants","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"^4.4.3","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.0","vitest":"^4.1.7","typescript":"^6.0.3","@types/node":"^26.1.0","@vitest/coverage-v8":"^4.1.10"},"_npmOperationalInternal":{"tmp":"tmp/gitea-mcp_0.3.5_1783665876194_0.8938505372246681","host":"s3://npm-registry-packages-npm-production"}},"0.3.6":{"name":"@amonstack/gitea-mcp","version":"0.3.6","keywords":["mcp","gitea","issues"],"author":{"name":"amonstack"},"license":"MIT","_id":"@amonstack/gitea-mcp@0.3.6","maintainers":[{"name":"pengln","email":"pengsixiang82@gmail.com"}],"homepage":"https://github.com/amonstack/gitea_mcp#readme","bugs":{"url":"https://github.com/amonstack/gitea_mcp/issues"},"bin":{"gitea-mcp":"dist/cli.js"},"dist":{"shasum":"716f5e87c7eb2c3aa32b3a1034e7362088c8b337","tarball":"https://registry.npmjs.org/@amonstack/gitea-mcp/-/gitea-mcp-0.3.6.tgz","fileCount":47,"integrity":"sha512-z2It06uy4IrL9qdFXhA4MX7lqWPfX0HHaTcZBQL9/Zu70JQxf52zQSR8K5FQhVWm/VTmHfmi9EuvVMBjsjjgoQ==","signatures":[{"sig":"MEUCIQD3xNRh9dI9BW+AVlIPwcuEQB8H7xphM6eaNJxQ6Q+OlAIgfTGBQ4w3/l1CBL/5g9+xzMUY7+T/Ku5Ej70qCzPi3ok=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":315041},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=24"},"gitHead":"fc0341200daf031935f52da96b5f56c69141934c","scripts":{"dev":"tsx src/cli.ts","lint":"tsc -p tsconfig.json","scan":"gitleaks detect --source . --redact --report-format json -r .dist/leaks.json --no-banner","test":"vitest run","build":"tsc -p tsconfig.build.json && npm run build:assets","smoke":"node scripts/smoke.mjs","start":"node dist/cli.js","test:watch":"vitest","build:assets":"node scripts/copy-assets.mjs","test:coverage":"vitest run --coverage","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"pengln","email":"pengsixiang82@gmail.com"},"repository":{"url":"git+https://github.com/amonstack/gitea_mcp.git","type":"git"},"_npmVersion":"11.16.0","description":"MCP server that exposes Gitea issues, labels, milestones, and comments as tools for AI assistants","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"^4.4.3","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.0","vitest":"^4.1.7","typescript":"^6.0.3","@types/node":"^26.1.0","@vitest/coverage-v8":"^4.1.10"},"_npmOperationalInternal":{"tmp":"tmp/gitea-mcp_0.3.6_1783913379515_0.38965906472092526","host":"s3://npm-registry-packages-npm-production"}},"0.3.7":{"name":"@amonstack/gitea-mcp","version":"0.3.7","keywords":["mcp","gitea","issues"],"author":{"name":"amonstack"},"license":"MIT","_id":"@amonstack/gitea-mcp@0.3.7","maintainers":[{"name":"pengln","email":"pengsixiang82@gmail.com"}],"homepage":"https://github.com/amonstack/gitea_mcp#readme","bugs":{"url":"https://github.com/amonstack/gitea_mcp/issues"},"bin":{"gitea-mcp":"dist/cli.js"},"dist":{"shasum":"c91964562deeb7fe35d51b6ca38bf7934e3497a0","tarball":"https://registry.npmjs.org/@amonstack/gitea-mcp/-/gitea-mcp-0.3.7.tgz","fileCount":50,"integrity":"sha512-lZharPs0ugncKuy3Y6x5PPswkRr7Z/Q55DCG1v30NVFMb7qPukyDPqAZnfUL2wa3ypAj/mCD8cO6mE2f6fIGmw==","signatures":[{"sig":"MEUCIQCfBashcBgmLy9r3sO+B0Y95p5qizM12eU6NhuSeQdYhAIgUBn9zqHIUd7TziWYqPu0ZRfB9YcAltuGlTTd08MbTU0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":345266},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=24"},"gitHead":"e55af9e7811b5dfb47eddfdb5d3fcc6620411441","scripts":{"dev":"tsx src/cli.ts","lint":"tsc -p tsconfig.json","scan":"gitleaks detect --source . --redact --report-format json -r .dist/leaks.json --no-banner","test":"vitest run","build":"tsc -p tsconfig.build.json && npm run build:assets","smoke":"node scripts/smoke.mjs","start":"node dist/cli.js","test:watch":"vitest","build:assets":"node scripts/copy-assets.mjs","test:coverage":"vitest run --coverage","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"pengln","email":"pengsixiang82@gmail.com"},"repository":{"url":"git+https://github.com/amonstack/gitea_mcp.git","type":"git"},"_npmVersion":"11.16.0","description":"MCP server that exposes Gitea issues, labels, milestones, and comments as tools for AI assistants","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"^4.4.3","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.1","vitest":"^4.1.7","typescript":"^7.0.2","@types/node":"^26.1.1","@vitest/coverage-v8":"^4.1.10"},"_npmOperationalInternal":{"tmp":"tmp/gitea-mcp_0.3.7_1784338894744_0.6587321342514971","host":"s3://npm-registry-packages-npm-production"}},"0.3.8":{"name":"@amonstack/gitea-mcp","version":"0.3.8","keywords":["mcp","gitea","issues"],"author":{"name":"amonstack"},"license":"MIT","_id":"@amonstack/gitea-mcp@0.3.8","maintainers":[{"name":"pengln","email":"pengsixiang82@gmail.com"}],"homepage":"https://github.com/amonstack/gitea_mcp#readme","bugs":{"url":"https://github.com/amonstack/gitea_mcp/issues"},"bin":{"gitea-mcp":"dist/cli.js"},"dist":{"shasum":"29c6cae6377643c25465041761e31b36a26b8c5e","tarball":"https://registry.npmjs.org/@amonstack/gitea-mcp/-/gitea-mcp-0.3.8.tgz","fileCount":50,"integrity":"sha512-YeYeg+H9Y9kjwzWp24QEJ69lElB3wBXlEqUCEYVRkCXY6Gs+syYwdvl7sLe/CfuPe7fplmebCboPuvdpav2GqQ==","signatures":[{"sig":"MEYCIQCPVLjvsl3dxnUbS4q/XDxFqfjGSCSquBAXBLpiO4WUTQIhAOv1GPOR6boPc8bxiRruJtoM4EKXdo9uEi3GUQs9ufMg","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":368643},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=24"},"gitHead":"22cf827d4f0df2c6a877b50b8cd21477c809a55b","scripts":{"dev":"tsx src/cli.ts","lint":"tsc -p tsconfig.json","scan":"gitleaks detect --source . --redact --report-format json -r .dist/leaks.json --no-banner","test":"vitest run","build":"tsc -p tsconfig.build.json && npm run build:assets","smoke":"node scripts/smoke.mjs","start":"node dist/cli.js","test:watch":"vitest","build:assets":"node scripts/copy-assets.mjs","test:coverage":"vitest run --coverage","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"pengln","email":"pengsixiang82@gmail.com"},"repository":{"url":"git+https://github.com/amonstack/gitea_mcp.git","type":"git"},"_npmVersion":"11.16.0","description":"MCP server that exposes Gitea issues, labels, milestones, and comments as tools for AI assistants","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"^4.4.3","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.1","vitest":"^4.1.7","typescript":"^7.0.2","@types/node":"^26.1.1","@vitest/coverage-v8":"^4.1.10"},"_npmOperationalInternal":{"tmp":"tmp/gitea-mcp_0.3.8_1784550002671_0.7602471961442989","host":"s3://npm-registry-packages-npm-production"}},"0.3.9":{"name":"@amonstack/gitea-mcp","version":"0.3.9","keywords":["mcp","gitea","issues"],"author":{"name":"amonstack"},"license":"MIT","_id":"@amonstack/gitea-mcp@0.3.9","maintainers":[{"name":"pengln","email":"pengsixiang82@gmail.com"}],"homepage":"https://github.com/amonstack/gitea_mcp#readme","bugs":{"url":"https://github.com/amonstack/gitea_mcp/issues"},"bin":{"gitea-mcp":"dist/cli.js"},"dist":{"shasum":"1dba306ec7a28c82597dee8ba508debbf40f2635","tarball":"https://registry.npmjs.org/@amonstack/gitea-mcp/-/gitea-mcp-0.3.9.tgz","fileCount":50,"integrity":"sha512-TFvvDXQv1tWpmcAeSywxkYpFSW23kOZSqiXU8n2oNNYb29tU9HRR9xa0ArbjhDziQip/APzCF2ko0QQWRJ9LOQ==","signatures":[{"sig":"MEQCIH4O2N2hleZ2t9iisJ3CLJ83eyrhO1FWJ2pwBVkr5v84AiBy/3baLaTcQsUVIvYwmPq4K1HXOrDsIPCdzrCjAe0wrw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":374107},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=24"},"gitHead":"3936ec35fe2b5660df0b070070dce4c5664fc196","scripts":{"dev":"tsx src/cli.ts","lint":"tsc -p tsconfig.json","scan":"gitleaks detect --source . --redact --report-format json -r .dist/leaks.json --no-banner","test":"vitest run","build":"tsc -p tsconfig.build.json && npm run build:assets","smoke":"node scripts/smoke.mjs","start":"node dist/cli.js","test:watch":"vitest","build:assets":"node scripts/copy-assets.mjs","test:coverage":"vitest run --coverage","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"pengln","email":"pengsixiang82@gmail.com"},"repository":{"url":"git+https://github.com/amonstack/gitea_mcp.git","type":"git"},"_npmVersion":"11.16.0","description":"MCP server that exposes Gitea issues, labels, milestones, and comments as tools for AI assistants","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"^4.4.3","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.1","vitest":"^4.1.7","typescript":"^7.0.2","@types/node":"^26.1.1","@vitest/coverage-v8":"^4.1.10"},"_npmOperationalInternal":{"tmp":"tmp/gitea-mcp_0.3.9_1784646561010_0.007803517642173574","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@amonstack/gitea-mcp","version":"0.4.0","keywords":["mcp","gitea","issues"],"author":{"name":"amonstack"},"license":"MIT","_id":"@amonstack/gitea-mcp@0.4.0","maintainers":[{"name":"pengln","email":"pengsixiang82@gmail.com"}],"homepage":"https://github.com/amonstack/gitea_mcp#readme","bugs":{"url":"https://github.com/amonstack/gitea_mcp/issues"},"bin":{"gitea-mcp":"dist/cli.js"},"dist":{"shasum":"ca4ccc4d006b44f39326655cf39dfe4b2b993008","tarball":"https://registry.npmjs.org/@amonstack/gitea-mcp/-/gitea-mcp-0.4.0.tgz","fileCount":52,"integrity":"sha512-MwFd+/1/UsHYhmUiWwH8pJuHZjadmI7HeFyBmbJlMNOnsX5K8vYabcnWTMBo8uvlSkJrfKVBXF0RYPTTdoUncQ==","signatures":[{"sig":"MEYCIQDVu+z0Jnevd2WAirvsDaJ0CPWVQwFovi8D+oZe4jN0CQIhALjugl1/J7nINwwbwJik0s9jKEgIihCxaAvVCOs8PY+c","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":411744},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=24"},"gitHead":"01691fad0e472d5dcc34b6fdbc69c83658b3a0d8","scripts":{"dev":"tsx src/cli.ts","lint":"tsc -p tsconfig.json","scan":"gitleaks detect --source . --redact --report-format json -r .dist/leaks.json --no-banner","test":"vitest run","build":"tsc -p tsconfig.build.json && npm run build:assets","smoke":"node scripts/smoke.mjs","start":"node dist/cli.js","test:watch":"vitest","build:assets":"node scripts/copy-assets.mjs","test:coverage":"vitest run --coverage","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"pengln","email":"pengsixiang82@gmail.com"},"overrides":{"fast-uri":"^3.1.4","body-parser":"^2.3.0","@hono/node-server":"^2.0.5"},"repository":{"url":"git+https://github.com/amonstack/gitea_mcp.git","type":"git"},"_npmVersion":"11.16.0","description":"MCP server that exposes Gitea issues, labels, milestones, and comments as tools for AI assistants","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"^4.4.3","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.1","vitest":"^4.1.7","typescript":"^7.0.2","@types/node":"^26.1.1","@vitest/coverage-v8":"^4.1.10"},"_npmOperationalInternal":{"tmp":"tmp/gitea-mcp_0.4.0_1785142403303_0.5002580311172147","host":"s3://npm-registry-packages-npm-production"}},"0.4.1":{"name":"@amonstack/gitea-mcp","version":"0.4.1","keywords":["mcp","gitea","issues"],"author":{"name":"amonstack"},"license":"MIT","_id":"@amonstack/gitea-mcp@0.4.1","maintainers":[{"name":"pengln","email":"pengsixiang82@gmail.com"}],"homepage":"https://github.com/amonstack/gitea_mcp#readme","bugs":{"url":"https://github.com/amonstack/gitea_mcp/issues"},"bin":{"gitea-mcp":"dist/cli.js"},"dist":{"shasum":"e39903d32b2e5ce957961277969f3e94f7931851","tarball":"https://registry.npmjs.org/@amonstack/gitea-mcp/-/gitea-mcp-0.4.1.tgz","fileCount":52,"integrity":"sha512-gnCX/uaAt3Xtg2ohB3/vhQPJ7aKtTgIU5Ey4oQb8CrgSrTRRa4L14MNHaL6Wdvk/z22En/9MShM1H0kDz6l0hw==","signatures":[{"sig":"MEUCIQDVllukyx6V0sLLPnl6IQzfm6X/8xLW/CLUTOD6uK1bJQIgYOq8SVo6emkYurY88iQpJySCf4HGs4SWpqUWnHVQdp0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":439069},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=24"},"gitHead":"f1973f8c1b1a433c4b049ddc88bb657de8a1439d","scripts":{"dev":"tsx src/cli.ts","lint":"tsc -p tsconfig.json","scan":"gitleaks detect --source . --redact --report-format json -r .dist/leaks.json --no-banner","test":"vitest run","build":"tsc -p tsconfig.build.json && npm run build:assets","smoke":"node scripts/smoke.mjs","start":"node dist/cli.js","test:watch":"vitest","build:assets":"node scripts/copy-assets.mjs","test:coverage":"vitest run --coverage","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"pengln","email":"pengsixiang82@gmail.com"},"overrides":{"fast-uri":"^3.1.4","body-parser":"^2.3.0","@hono/node-server":"^2.0.5"},"repository":{"url":"git+https://github.com/amonstack/gitea_mcp.git","type":"git"},"_npmVersion":"11.16.0","description":"MCP server that exposes Gitea issues, labels, milestones, and comments as tools for AI assistants","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"^4.4.3","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.1","vitest":"^4.1.7","typescript":"^7.0.2","@types/node":"^26.1.1","@vitest/coverage-v8":"^4.1.10"},"_npmOperationalInternal":{"tmp":"tmp/gitea-mcp_0.4.1_1785725085066_0.7596724700727542","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@amonstack/gitea-mcp","version":"0.5.0","keywords":["mcp","gitea","issues"],"author":{"name":"amonstack"},"license":"MIT","_id":"@amonstack/gitea-mcp@0.5.0","maintainers":[{"name":"pengln","email":"pengsixiang82@gmail.com"}],"homepage":"https://github.com/amonstack/gitea_mcp#readme","bugs":{"url":"https://github.com/amonstack/gitea_mcp/issues"},"bin":{"gitea-mcp":"dist/cli.js"},"dist":{"shasum":"3df0c415455292f83dfd79fb084c0644d8ec13ba","tarball":"https://registry.npmjs.org/@amonstack/gitea-mcp/-/gitea-mcp-0.5.0.tgz","fileCount":52,"integrity":"sha512-08ArLhiTYeisCmpDbtcs/OAjUuKf3UPbD2rckplo7+YRGo65s8EdYbEEAYSlfoxWLHoe2Hxd8L26iS2b7HnR7g==","signatures":[{"sig":"MEUCIDl+MpiCdFqg3nYQ8vnE3dQm2vsHTKolIP7PQJoLRGTOAiEA/JNEhF7nJjexkzKCJ7XmFtuXV2/dAaz1NT2xSK1nrhQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":473554},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=24"},"gitHead":"952965fa61ba040ad7d402063f8a0fbf46de6d55","scripts":{"dev":"tsx src/cli.ts","lint":"tsc -p tsconfig.json","scan":"gitleaks detect --source . --redact --report-format json -r .dist/leaks.json --no-banner","test":"vitest run","build":"tsc -p tsconfig.build.json && npm run build:assets","smoke":"node scripts/smoke.mjs","start":"node dist/cli.js","test:watch":"vitest","build:assets":"node scripts/copy-assets.mjs","test:coverage":"vitest run --coverage","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"pengln","email":"pengsixiang82@gmail.com"},"overrides":{"fast-uri":"^3.1.5","body-parser":"^2.3.0","@hono/node-server":"^2.0.5"},"repository":{"url":"git+https://github.com/amonstack/gitea_mcp.git","type":"git"},"_npmVersion":"11.16.0","description":"MCP server that exposes Gitea issues, labels, milestones, and comments as tools for AI assistants","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"^4.4.3","@modelcontextprotocol/sdk":"^1.30.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.1","vitest":"^4.1.7","typescript":"^7.0.2","@types/node":"^26.1.2","@vitest/coverage-v8":"^4.1.10"},"_npmOperationalInternal":{"tmp":"tmp/gitea-mcp_0.5.0_1786023112548_0.0351889023198122","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"@amonstack/gitea-mcp","version":"0.6.0","keywords":["mcp","gitea","issues"],"author":{"name":"amonstack"},"license":"MIT","_id":"@amonstack/gitea-mcp@0.6.0","maintainers":[{"name":"pengln","email":"pengsixiang82@gmail.com"}],"homepage":"https://github.com/amonstack/gitea_mcp#readme","bugs":{"url":"https://github.com/amonstack/gitea_mcp/issues"},"bin":{"gitea-mcp":"dist/cli.js"},"dist":{"shasum":"f7233405d2b4bfe7f87f2745c1b8d1d8a7e0c7dc","tarball":"https://registry.npmjs.org/@amonstack/gitea-mcp/-/gitea-mcp-0.6.0.tgz","fileCount":52,"integrity":"sha512-lQkUnXfbQ4DwqSbfhKZyC+WgqAdjQWFHXgyJv/MzZBqRFyzZRH5EqOx+u8gbcL72iQ6ekoxfTA08yPe9JTnXdw==","signatures":[{"sig":"MEUCIFY799kuRTSeBxYDG39ffSStO721b7VvLutkV2Ksou8FAiEAvz/27NYRxZS5dBgjbQFmJqTr74nDkmFuNogRu/dzEYM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":515703},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=24"},"gitHead":"e1e3cdfc82c7d781558108796071f02facbadcf3","scripts":{"dev":"tsx src/cli.ts","lint":"tsc -p tsconfig.json","scan":"gitleaks detect --source . --redact --report-format json -r .dist/leaks.json --no-banner","test":"vitest run","build":"tsc -p tsconfig.build.json && npm run build:assets","smoke":"node scripts/smoke.mjs","start":"node dist/cli.js","test:watch":"vitest","build:assets":"node scripts/copy-assets.mjs","test:coverage":"vitest run --coverage","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"pengln","email":"pengsixiang82@gmail.com"},"overrides":{"fast-uri":"^3.1.5","body-parser":"^2.3.0","@hono/node-server":"^2.0.5"},"repository":{"url":"git+https://github.com/amonstack/gitea_mcp.git","type":"git"},"_npmVersion":"11.17.0","description":"MCP server that exposes Gitea issues, labels, milestones, and comments as tools for AI assistants","directories":{},"_nodeVersion":"24.19.0","dependencies":{"zod":"^4.4.3","@modelcontextprotocol/sdk":"^1.30.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.1","vitest":"^4.1.7","typescript":"^7.0.2","@types/node":"^26.1.2","@vitest/coverage-v8":"^4.1.10"},"_npmOperationalInternal":{"tmp":"tmp/gitea-mcp_0.6.0_1787211059592_0.45231614776378604","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"@amonstack/gitea-mcp","version":"0.7.0","description":"MCP server that exposes Gitea issues, labels, milestones, and comments as tools for AI assistants","repository":{"type":"git","url":"git+https://github.com/amonstack/gitea_mcp.git"},"homepage":"https://github.com/amonstack/gitea_mcp#readme","bugs":{"url":"https://github.com/amonstack/gitea_mcp/issues"},"type":"module","main":"dist/index.js","bin":{"gitea-mcp":"dist/cli.js"},"scripts":{"build":"tsc -p tsconfig.build.json && npm run build:assets","build:assets":"node scripts/copy-assets.mjs","dev":"tsx src/cli.ts","start":"node dist/cli.js","lint":"tsc -p tsconfig.json","test":"vitest run","test:watch":"vitest","test:integration":"vitest run --config vitest.integration.config.ts","test:coverage":"vitest run --coverage","smoke":"node scripts/smoke.mjs","scan":"gitleaks detect --source . --redact --report-format json -r .dist/leaks.json --no-banner"},"publishConfig":{"access":"public"},"keywords":["mcp","gitea","issues"],"author":{"name":"amonstack"},"license":"MIT","engines":{"node":">=24"},"dependencies":{"@modelcontextprotocol/sdk":"^1.30.0","zod":"^4.4.3"},"devDependencies":{"@types/node":"^26.2.0","@vitest/coverage-v8":"^4.1.11","tsx":"^4.23.12","typescript":"^7.0.2","vitest":"^4.1.7"},"overrides":{"fast-uri":"^3.1.7","@hono/node-server":"^2.0.5","body-parser":"^2.3.0"},"gitHead":"0d3654004630be7087c0a2cbdb31f7767888761d","types":"./dist/index.d.ts","_id":"@amonstack/gitea-mcp@0.7.0","_nodeVersion":"24.19.0","_npmVersion":"11.17.0","dist":{"integrity":"sha512-ZqoiekgAZZoFzFNuZJPkaxID9FlVIu/fvNm1AeCFgccJd6qTqZ7o7Ngb2hFdAaC6gQM6X0to2IED9lweJ6zZeQ==","shasum":"8887c949da49d1c67d05c971d9bd3729ba0740b8","tarball":"https://registry.npmjs.org/@amonstack/gitea-mcp/-/gitea-mcp-0.7.0.tgz","fileCount":55,"unpackedSize":673349,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIFJ1oByVerysP6oZUJI42adp+r6dnQYlf6m6PSN7y2C3AiAz+HMRqdNY/7a33jp3GAfwM0osTpviq8dMCDPsV0DJ1A=="}]},"_npmUser":{"name":"pengln","email":"pengsixiang82@gmail.com"},"directories":{},"maintainers":[{"name":"pengln","email":"pengsixiang82@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/gitea-mcp_0.7.0_1788490589655_0.08796047388827555"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-08T09:29:35.742Z","modified":"2026-09-04T02:56:30.128Z","1.0.0":"2026-06-08T08:50:12.822Z","0.1.2":"2026-06-08T08:51:15.961Z","0.1.3":"2026-06-08T09:29:36.102Z","0.1.4":"2026-06-08T09:45:53.823Z","0.2.0":"2026-07-03T11:19:02.036Z","0.2.1":"2026-07-03T11:45:35.185Z","0.2.2":"2026-07-03T15:56:49.058Z","0.3.0":"2026-07-06T07:21:40.311Z","0.3.1":"2026-07-06T11:07:09.710Z","0.3.2":"2026-07-07T05:23:58.082Z","0.3.3":"2026-07-07T07:47:29.011Z","0.3.4":"2026-07-09T16:56:50.374Z","0.3.5":"2026-07-10T06:44:36.324Z","0.3.6":"2026-07-13T03:29:39.657Z","0.3.7":"2026-07-18T01:41:34.938Z","0.3.8":"2026-07-20T12:20:02.820Z","0.3.9":"2026-07-21T15:09:21.149Z","0.4.0":"2026-07-27T08:53:23.440Z","0.4.1":"2026-08-03T02:44:45.230Z","0.5.0":"2026-08-06T13:31:52.732Z","0.6.0":"2026-08-20T07:30:59.880Z","0.7.0":"2026-09-04T02:56:29.843Z"},"bugs":{"url":"https://github.com/amonstack/gitea_mcp/issues"},"author":{"name":"amonstack"},"license":"MIT","homepage":"https://github.com/amonstack/gitea_mcp#readme","keywords":["mcp","gitea","issues"],"repository":{"type":"git","url":"git+https://github.com/amonstack/gitea_mcp.git"},"description":"MCP server that exposes Gitea issues, labels, milestones, and comments as tools for AI assistants","maintainers":[{"name":"pengln","email":"pengsixiang82@gmail.com"}],"readme":"<p align=\"center\">\n  <img alt=\"gitea-mcp\" src=\"https://raw.githubusercontent.com/amonstack/gitea_mcp/master/docs/assets/gitea-mcp-banner.png\" />\n  <h3 align=\"center\">gitea-mcp</h3>\n  <p align=\"center\">MCP 服务端，将 Gitea 的议题、标签、里程碑、评论与主题封装为工具，供 AI 助手调用</p>\n</p>\n\n---\n\n[![npm version](https://img.shields.io/npm/v/@amonstack/gitea-mcp?logo=npm)](https://www.npmjs.com/package/@amonstack/gitea-mcp)\n[![codecov](https://codecov.io/gh/amonstack/gitea_mcp/branch/master/graph/badge.svg)](https://codecov.io/gh/amonstack/gitea_mcp)\n[![license](https://img.shields.io/npm/l/@amonstack/gitea-mcp)](https://github.com/amonstack/gitea_mcp/blob/master/LICENSE)\n[![Node](https://img.shields.io/node/v/@amonstack/gitea-mcp?logo=node.js)](https://www.npmjs.com/package/@amonstack/gitea-mcp)\n[![TypeScript](https://img.shields.io/badge/TypeScript-strict-3178c6?logo=typescript&logoColor=white)](https://www.typescriptlang.org)\n[![MCP](https://img.shields.io/badge/MCP-server-6f42c1?logo=modelcontextprotocol&logoColor=white)](https://modelcontextprotocol.io)\n\n[English](https://github.com/amonstack/gitea_mcp/blob/master/README.md) | **中文文档**\n\n`gitea-mcp` 是一个 [Model Context Protocol (MCP)](https://modelcontextprotocol.io/) 服务端，将 Gitea 仓库操作暴露为 MCP 工具。连接到 MCP 客户端（Claude Desktop、opencode、Cursor 等）后，AI 助手即可通过自然语言在 Gitea 实例上创建、查询、更新和删除议题、标签、里程碑、评论和主题。\n\n服务端通过 stdio 通信，封装了 [Gitea REST API (`/api/v1`)](https://docs.gitea.com/api/1.22/)。同时支持 **GitLab**（gitlab.com 与自建实例）作为第二平台——见 [GitLab 支持](#gitlab-支持)。\n\n## 功能特性\n\n- **GitLab 支持** —— 同一套工具运行于 gitlab.com 与自建 GitLab 实例（`MCP_PLATFORM=gitlab` 或 `GITLAB_*` 环境变量契约）\n- **完整的 Gitea 项目管理** —— 通过自然语言管理议题、标签、里程碑、评论与主题\n- **零配置自动发现** —— 从项目 git 配置读取 `baseUrl`、`owner`、`repo` 与令牌；一次全局安装即可服务多个仓库\n- **多来源认证 + 自动容错** —— 依次尝试 `[gitea]` 配置令牌、`GITEA_TOKEN`、git 自身的凭据机制（`git credential fill`，支持存储文件与 OS 钥匙串），遇 `401`/`403` 自动切换\n- **按动作划分的技能** —— 每个工作流一个技能（查找、创建、打标签、评论、规划里程碑……），适配 opencode、Claude Code、Cursor 等\n- **客户端无关** —— 兼容任何基于 stdio 的 MCP 客户端；同时内置引导提示与按需参考资源\n\n## 目录\n\n- [功能特性](#功能特性)\n- [环境要求](#环境要求)\n- [安装](#安装)\n- [配置](#配置)\n- [MCP 客户端配置](#mcp-客户端配置)\n- [可用工具](#可用工具)\n- [AI 引导与技能](#ai-引导与技能)\n- [二次开发](#二次开发)\n- [参与贡献](#参与贡献)\n- [许可证](#许可证)\n\n## 环境要求\n\n- **Node.js ≥ 24** —— 使用全局 `fetch`\n- **git ≥ 2.46**（在 `PATH` 上）—— 用于凭据发现（`git config get` / `git credential fill`；`git credential fill` 同时支持所有已配置的凭据 helper，含 OS 钥匙串）。git 完全不可用时，发现降级为仅环境变量来源（`GITEA_REPO_URL` / `GITEA_TOKEN`）/ 匿名模式——`gitea_status` 会报告 `gitAvailable: false`。git < 2.46 时，`.git/config [gitea]` 令牌来源会静默失效（退出码不可区分）；凭据 helper 与环境变量来源仍可用。\n- 一个可通过 HTTP 访问的 **Gitea 实例**（自托管或 Gitea Cloud）\n- 一个 **Gitea API 令牌**（或一条 git 凭据），用于读取公开仓库以外的操作\n\n## 安装\n\n### 从 npm（npmjs.com）安装\n\n```bash\nnpm install -g @amonstack/gitea-mcp\n```\n\n或无需全局安装，直接运行：\n\n```bash\nnpx @amonstack/gitea-mcp\n```\n\n### 从 GitHub Packages 安装\n\n每个版本也会发布到 GitHub Packages。先把 `@amonstack` 作用域指向它，再安装：\n\n```bash\necho \"@amonstack:registry=https://npm.pkg.github.com\" >> ~/.npmrc\nnpm install -g @amonstack/gitea-mcp\n```\n\n### 从源码构建\n\n```bash\ngit clone https://github.com/amonstack/gitea-mcp.git\ncd gitea-mcp\nnpm ci\nnpm run build\nnode dist/cli.js\n```\n\n## 配置\n\n所有变量都是可选的——`gitea-mcp` 会从项目本地 git 配置自动发现 Gitea 实例、仓库和令牌，\n因此一次全局安装即可服务多个项目。仅在需要覆盖自动发现结果或限制工具面时才设置它们。\n\n| 变量 | 必填 | 说明 |\n|------|:----:|------|\n| `GITEA_BASE_URL` | 否 | Gitea 实例地址（如 `https://gitea.example.com`）。未设置时从项目 git 远程地址自动推导。 |\n| `GITEA_TOKEN` | 否 | Gitea API 访问令牌。是多个认证候选之一；排在 `GITEA_REPO_URL` userinfo 与 `.git/config [gitea]` 令牌之后、git 凭据机制之前（见[令牌发现](#令牌发现)）。 |\n| `GITEA_REPO_URL` | 否 | 一个自包含的带凭据克隆地址——`https://<user>:<token>@<host>[:<port>]/<owner>/<repo>.git`——用单个变量同时提供实例地址、默认 owner/repo 和一个认证候选。各部分分别位于其显式覆盖变量（`GITEA_BASE_URL`、`GITEA_DEFAULT_OWNER`、`GITEA_DEFAULT_REPO`）之下、git 远程之上；纯内存解析，git 不可用时同样生效，内嵌密钥绝不会出现在任何输出中。 |\n| `GITEA_DEFAULT_OWNER` | 否 | 默认仓库所有者，免去每次传入 `owner` 参数 |\n| `GITEA_DEFAULT_REPO` | 否 | 默认仓库名称，免去每次传入 `repo` 参数 |\n| `GITEA_UPLOAD_ROOT` | 否 | 附件上传（`create_issue_attachment` / `create_issue_comment_attachment`）允许读取的根目录。默认为服务器工作目录；解析后的路径必须位于该根目录内。 |\n| `MCP_PLATFORM` | 否 | 当前服务进程服务的平台：`gitea`（默认）或 `gitlab`。设置后优先于 [GitLab 支持](#gitlab-支持)中描述的自动判定。 |\n| `MCP_TOOL_ALLOWLIST` | 否 | 服务器允许暴露的工具名列表，逗号分隔的 `snake_case` 名称（条目去除首尾空白后精确匹配）。未设置或为空时所有工具可用；条目在当前平台上没有对应工具时启动即报 `Fatal error` 退出。 |\n| `GITLAB_BASE_URL` | 否 | GitLab 实例地址（如 `https://gitlab.example.com`）。未设置时从项目 git 远程地址自动推导；其存在（且无 `GITEA_*` 连接变量）会选定 GitLab 模式。 |\n| `GITLAB_TOKEN` | 否 | GitLab API 访问令牌。是多个认证候选之一；排在 `GITLAB_REPO_URL` userinfo 与 `.git/config [gitlab]` 令牌之后、git 凭据机制之前。始终以 `Authorization: Bearer <token>` 头发送。 |\n| `GITLAB_REPO_URL` | 否 | `GITEA_REPO_URL` 的 GitLab 对应变量——一个带凭据的克隆地址，同时提供实例地址、默认 owner/project 和一个 `Bearer` 认证候选。其存在（且无 `GITEA_*` 连接变量）会选定 GitLab 模式。 |\n| `GITLAB_DEFAULT_OWNER` | 否 | 默认项目所有者（GitLab 模式），免去每次传入 `owner` 参数 |\n| `GITLAB_DEFAULT_REPO` | 否 | 默认项目名称（GitLab 模式），免去每次传入 `repo` 参数 |\n\n### GitLab 支持\n\n`gitea-mcp` 也可以运行在 **GitLab**（gitlab.com 与自建实例）之上。一个服务进程\n只服务一个平台——需要同时使用两者时，请在 MCP 客户端中注册两个条目。平台在启动时\n按下述规则选定：\n\n1. 设置了 `MCP_PLATFORM=gitlab`（或 `gitea`）时以其为准；\n2. 否则，当设置了 `GITLAB_BASE_URL`、`GITLAB_TOKEN` 或 `GITLAB_REPO_URL` 任意其一，\n   且未设置任何 `GITEA_*` 连接变量时，自动选定 GitLab；\n3. 默认仍为 `gitea`（既有配置行为不变）。\n\nGitLab 模式下，相同的 68 个业务工具名运行在 GitLab REST API v4（`/api/v4`）之上，\n并以 `configure_gitlab` / `gitlab_status` 取代 `configure_gitea` / `gitea_status`。\n发现机制与 Gitea 契约一致：`GITLAB_REPO_URL` 仓库地址、git 配置中的\n`[gitlab \"<baseUrl>\"] token`、`GITLAB_TOKEN`\n以及 `git credential fill`——所有凭据只以 `Authorization: Bearer <token>` 头发送\n（绝不通过 URL 查询参数传递）。\n\n覆盖说明——无 GitLab 对应物的操作会返回类型化的 `GitLabUnsupportedError`，仅\nPremium/Ultimate 可用的操作会返回 `GitLabTierError`（都不是原始 API 错误）：\n\n- **完全可用**：议题、评论（列出/创建）、标签、里程碑、主题、合并请求、\n  Release（列出/创建/按 tag 查询）、Wiki 页面、流水线（Actions 工具组：\n  列出/查询/取消/重跑）。\n- **付费层限制（GitLab Premium/Ultimate）**：议题依赖/阻塞工具组\n  （`list_issue_dependencies`、`add/remove_issue_dependency`、`list_issue_blocks`、\n  `add/remove_issue_block`、`check_issue_blocked`）——GitLab Free 会拒绝阻塞类\n  链接类型。\n- **GitLab 上不可用**：议题附件工具；`update_comment` / `delete_comment`\n  （GitLab 评论按议题内 note 寻址）；`get_release`、`update_release`、\n  `delete_release`（GitLab Release 以 `tag_name` 寻址——请用\n  `get_release_by_tag`）；`rerun_action_run_failed_jobs`；`list_wiki_revisions`；\n  `merge_pull_request` 的 `rebase` / `rebase-merge` 策略；以及 release 的\n  `draft`/`prerelease` 标志、`update_repo` 的 `website`/`private`、wiki 的\n  `message`、`search_issues` 的 `labels` 过滤参数。\n- **寻址规则**遵循 GitLab 约定：议题与合并请求按项目内 `iid`，里程碑与流水线按\n  数字 ID，Release 按 `tag_name`，Wiki 按 slug；响应返回 GitLab 原生 JSON\n  （`iid`、`web_url`、`references` 等）。\n- 内置动作技能与三个参考资源面向 Gitea 场景，仅在 Gitea 平台注册；GitLab 的\n  使用指引随服务端 instructions 下发。\n\n### 自动发现的工作方式\n\n启动时，`gitea-mcp` 读取 `<cwd>/.git/config` 并推导：\n\n- **实例地址** —— 取自选中远程地址的 host。SSH 远程（`git@host:owner/repo`）会被推导为\n  `https://host`。可用 `GITEA_BASE_URL` 覆盖。\n- **owner / repo** —— 取自选中远程地址。可用 `GITEA_DEFAULT_OWNER` / `GITEA_DEFAULT_REPO`\n  覆盖，或随时用 `resolve_repo` 工具检测。\n- **远程选择** —— 优先 `upstream`，回退 `origin`，再回退其它远程。两者不同时 `resolve_repo`\n  会同时返回。\n\n`GITEA_REPO_URL`——形如 `https://<user>:<token>@<host>[:<port>]/<owner>/<repo>.git`\n的一个带凭据克隆地址——是上述整条链路的自包含替代：一个变量同时提供实例地址、\n默认 owner/repo 和一个认证候选（纯内存解析，git 不可用时同样生效）。其各部分\n位于显式覆盖变量 `GITEA_BASE_URL` / `GITEA_DEFAULT_OWNER` / `GITEA_DEFAULT_REPO`\n之下、git 远程之上；原始地址绝不会被回显——`resolve_repo` 会对报告的远程地址\n剥离内嵌的 userinfo。\n\n若当前目录没有 git 远程、且未设置 `GITEA_BASE_URL` 或 `GITEA_REPO_URL`，服务器会\n以**未配置**状态启动——\n`tools/list` 完全可用，但业务工具调用时返回 `NotConfiguredError`。使用 `configure_gitea`\n工具在运行时配置连接（仅当前会话，不持久化），或在克隆的 Gitea 仓库内运行，或显式设置\n`GITEA_BASE_URL` / `GITEA_TOKEN`。\n\n### 令牌发现\n\n`gitea-mcp` 从四个来源收集认证**候选**，按以下优先级排序：\n\n1. `GITEA_REPO_URL` 仓库地址——当其 host 与实例一致时，内嵌的 `user:secret` userinfo\n   会成为最高优先级候选，并按与 git 凭据相同的用户名启发式确定尝试顺序（真实用户名\n   先试 `basic`；`oauth2` / `x-oauth-basic` / 令牌写在用户名位置时先试 `token`）。\n2. `.git/config` 中的 `[gitea \"<baseUrl>\"]` 段（不带地址的 `[gitea]` 段作为全局兜底），通过\n   `git config get --url=<baseUrl> gitea.token` 读取：\n   ```ini\n   [gitea \"https://gitea.example.com\"]\n       token = <your-token>\n   ```\n   始终以 `Authorization: token <token>` 发送。\n3. `GITEA_TOKEN` 环境变量 —— 同样以 `Authorization: token` 发送。运行时无法使用 `git` 时，\n   上述环境变量来源是仅剩的候选。\n4. git 自身会为实例 host 使用的凭据，通过 `git credential fill` 获取（配置链 + 凭据 helper——\n   存储文件、OS 钥匙串或你配置的任何 helper）。同一 host 存在多个身份时由 git 选取；\n   `configure_gitea` 的 `username` 可将查找收窄到该身份。\n\ngit 凭据的 `password` 字段可能是真正的 PAT、账户登录密码，或 OAuth token —— git 存的是\n用户在密码提示里输入的任何内容，服务端无法静态区分。因此凭据会以**两种认证方案**\n依次尝试：\n\n- `Authorization: Basic <base64(user:pass)>` —— 账户密码和 PAT 都能通过（Gitea 会校验用户名与\n  密钥属主一致）。\n- `Authorization: token <secret>` —— 仅对真正的 PAT 有效。\n\n尝试顺序由用户名启发式决定：约定用户名（`oauth2`、`x-oauth-basic`、空）先试 `token`；真实用户名\n（如 `alice`）先试 `basic`。\n\n**容错。** 遇到 `401`/`403`，服务端会切换到下一个方案/候选并重试同一请求；一旦某组凭据成功，\n它会被锁定到本会话结束（不再重复探测）。非认证类错误（`404`、`500`、网络错误）立即向上抛出，\n**不会**触发重试。\n\n**诊断。** `gitea_status` 工具（见[仓库辅助](#仓库辅助-repository-helpers)）返回当前状态的脱敏\n视图 —— 哪个候选处于 active、哪些已耗尽、最近一次的状态码 —— 永不暴露密钥本身。排查 `401` 时\n用它代替盲猜。\n\n若所有来源都未解析到凭据，服务器仍会以匿名方式启动。公开仓库可读；私有仓库和写操作返回\n`401` —— 此时使用 `gitea-configure` 技能引导配置，或设置 `GITEA_TOKEN`。\n\n设置 `GITEA_DEFAULT_OWNER` 和 `GITEA_DEFAULT_REPO` 后，调用工具时可以省略\n`owner` 和 `repo` 参数。也可以使用 `resolve_repo` 工具自动从本地 git 仓库\n检测这两个值。\n\n## MCP 客户端配置\n\n### Claude Desktop\n\n在 `claude_desktop_config.json` 中添加：\n\n```json\n{\n  \"mcpServers\": {\n    \"gitea-mcp\": {\n      \"command\": \"gitea-mcp\",\n      \"env\": {\n        \"GITEA_BASE_URL\": \"https://gitea.example.com\",\n        \"GITEA_TOKEN\": \"your-token-here\",\n        \"GITEA_DEFAULT_OWNER\": \"my-org\",\n        \"GITEA_DEFAULT_REPO\": \"my-repo\"\n      }\n    }\n  }\n}\n```\n\n如果从源码构建，将 `command` 改为 `node /path/to/gitea-mcp/dist/cli.js`。\n\n### opencode\n\n在 opencode 的 MCP 配置中添加：\n\n```json\n{\n  \"mcpServers\": {\n    \"gitea-mcp\": {\n      \"command\": \"gitea-mcp\",\n      \"env\": {\n        \"GITEA_BASE_URL\": \"https://gitea.example.com\",\n        \"GITEA_TOKEN\": \"your-token-here\"\n      }\n    }\n  }\n}\n```\n\n如果从源码构建，将 `command` 改为 `node /path/to/gitea-mcp/dist/cli.js`。\n\nopencode 及其它 AI 工具可加载原生**技能（skills）**——按动作拆分（查找、创建、\n更新、打标签、评论、总结、规划里程碑、解析仓库等），教会助手针对该动作的最安全\n工作流，含使用前检查与各类陷阱。用 `init` 命令一次性安装，并通过 `--tool` 指定\n目标工具（默认 `opencode`）：\n\n```bash\ngitea-mcp init                      # opencode（全局 ~/.config/opencode/skills/）\ngitea-mcp init --tool claude        # Claude Code（~/.claude/skills/）\ngitea-mcp init --tool cursor        # Cursor（~/.cursor/skills/）\ngitea-mcp init --project            # 仅当前项目（./.<tool>/skills/）\ngitea-mcp init --dir /exact/path    # 自定义路径\n```\n\n支持的 `--tool` 取值：`amazon-q`、`antigravity`、`auggie`、`claude`、`cline`、\n`codex`、`codebuddy`、`continue`、`costrict`、`crush`、`cursor`、`factory`、\n`gemini`、`github-copilot`、`iflow`、`kimi`、`kilocode`、`opencode`、`qoder`、`qwen`、\n`roocode`、`windsurf`。路径遵循各工具约定的 skills 目录；如需精确位置请用 `--dir`。\n随后重启对应工具。详见下方 [AI 引导与技能](#ai-引导与技能)。\n\n### 其他 MCP 客户端\n\n 任何支持 stdio 方式运行 MCP 服务端的客户端都可以使用。安装完成后，在克隆的 Gitea 仓库内\n 吏动即可（配置会自动发现）：\n\n```bash\ncd /path/to/your/gitea-repo\ngitea-mcp\n```\n\n也可显式设置环境变量：\n\n```bash\nexport GITEA_BASE_URL=\"https://gitea.example.com\"\nexport GITEA_TOKEN=\"your-access-token\"\ngitea-mcp\n```\n\n## 可用工具\n\n> 下表描述工具契约。在 GitLab 平台上，相同的 68 个业务工具运行于 GitLab REST\n> API v4（并以 `configure_gitlab` / `gitlab_status` 取代 `configure_gitea` /\n> `gitea_status`）——各工具的覆盖差异见 [GitLab 支持](#gitlab-支持)。\n\n### 议题 (Issues)\n\n| 工具 | 说明 |\n|------|------|\n| `list_issues` | 列出议题（可按 `state`、`labels` 筛选及分页） |\n| `get_issue` | 按 `index`（议题编号）获取单个议题 |\n| `create_issue` | 创建议题，支持 `title`、`body`、`assignee`、`labels`、`milestone` |\n| `update_issue` | 更新议题字段或 `state` |\n| `delete_issue` | 按 `index` 删除议题 |\n| `search_issues` | 跨仓库搜索议题，支持 `query`、`type`、`state`、`labels` |\n\n### 议题依赖 (Issue Dependencies)\n\n| 工具 | 说明 |\n|------|------|\n| `list_issue_dependencies` | 列出阻塞某议题的议题（`blocked by`），支持 page/limit 分页 |\n| `add_issue_dependency` | 让一个议题依赖于（被阻塞于）另一个议题 — `dep_index` 为阻塞者 |\n| `remove_issue_dependency` | 移除依赖，使议题不再被 `dep_index` 阻塞 |\n| `list_issue_blocks` | 列出被某议题阻塞的议题（`blocking`），支持 page/limit 分页 |\n| `add_issue_block` | 让一个议题阻塞另一个议题 — `index` 为阻塞者，`dep_index` 被阻塞 |\n| `remove_issue_block` | 移除阻塞，使 `dep_index` 不再被 `index` 阻塞 |\n| `check_issue_blocked` | 检查议题是否被未关闭的依赖阻塞 — 一次调用返回 `blocked`、`blockers`、`total_dependencies`、`open_blockers`（内部聚合 `list_issue_dependencies`） |\n\n> **说明：** 依赖类工具要求仓库开启 `enable_issue_dependencies`（返回 404 表示未开启）。\n> `dep_owner` / `dep_repo` 默认与该议题同库，也可指向其它仓库（需实例开启\n> `AllowCrossRepositoryDependencies`）。变更类工具返回路径议题的 JSON。\n\n### 评论 (Comments)\n\n| 工具 | 说明 |\n|------|------|\n| `list_comments` | 列出某个议题的评论 |\n| `create_comment` | 为议题添加评论 |\n| `update_comment` | 按 `id` 更新评论 |\n| `delete_comment` | 按 `id` 删除评论 |\n\n### 议题附件 (Issue Attachments)\n\n| 工具 | 说明 |\n|------|------|\n| `create_issue_attachment` | 将本地文件（`file_path`）上传为议题（`index`）的附件，可选 `name` 重命名。路径受限：必须位于上传根目录（cwd 或 `GITEA_UPLOAD_ROOT`）内，且通过扩展名白名单与大小上限 |\n| `list_issue_attachments` | 列出议题的附件 |\n| `get_issue_attachment` | 按 `attachment_id` 获取单个附件的元数据 |\n| `edit_issue_attachment` | 按 `attachment_id` 重命名附件 |\n| `delete_issue_attachment` | 按 `attachment_id` 删除附件 |\n| `create_issue_comment_attachment` | 将本地文件上传为评论（`comment_id`）的附件，可选 `name` 重命名；路径限制与 `create_issue_attachment` 相同 |\n\n> **说明：** 附件工具的 `file_path` 读取运行 `gitea-mcp` 的机器上的本地文件。\n> 实例可能禁用附件功能（返回 404 表示未开启），并限制上传大小（超限返回 413/422）。\n\n### 标签 (Labels)\n\n| 工具 | 说明 |\n|------|------|\n| `list_labels` | 列出仓库标签 |\n| `create_label` | 创建标签（`name`、`color`、`description`） |\n| `update_label` | 按 `id` 更新标签 |\n| `delete_label` | 按 `id` 删除标签 |\n| `add_issue_labels` | 按名称给议题添加标签 |\n| `remove_issue_label` | 按标签 `id` 从议题移除标签 |\n| `replace_issue_labels` | 替换议题上的所有标签 |\n| `clear_issue_labels` | 清除议题上的所有标签 |\n\n### 里程碑 (Milestones)\n\n| 工具 | 说明 |\n|------|------|\n| `list_milestones` | 列出里程碑（可按 `state` 筛选） |\n| `get_milestone` | 按 `id` 获取里程碑 |\n| `create_milestone` | 创建里程碑，支持 `title`、`description`、`due_on` |\n| `update_milestone` | 更新里程碑字段或 `state` |\n| `delete_milestone` | 按 `id` 删除里程碑 |\n\n### 主题 (Topics)\n\n| 工具 | 说明 |\n|------|------|\n| `list_topics` | 列出仓库的主题（标签） |\n| `replace_topics` | 用指定列表替换全部主题（传 `[]` 即清空） |\n| `add_topic` | 按名称添加单个主题 |\n| `remove_topic` | 按名称移除单个主题 |\n\n### 合并请求 (Pull Requests)\n\n| 工具 | 说明 |\n|------|------|\n| `list_pull_requests` | 列出仓库的 PR（按状态、标签、排序、里程碑筛选） |\n| `get_pull_request` | 按 PR 编号获取单个 PR 详情 |\n| `create_pull_request` | 创建 PR（标题、源分支 head、目标分支 base、正文） |\n| `update_pull_request` | 编辑 PR 或关闭/重开（state: open \\| closed） |\n| `merge_pull_request` | 合并 PR（策略: merge \\| squash \\| rebase \\| rebase-merge）—— **不可逆** |\n| `is_pull_merged` | 检查 PR 是否已合并 |\n| `list_pull_commits` | 列出 PR 中的提交 |\n| `list_pull_files` | 列出 PR 变更的文件 |\n\n> **说明：** PR 与 issue 共享编号空间（PR #N == Issue #N）。PR 的评论、标签、\n> 里程碑复用 **issue** 工具——把 PR 编号当作 `index` 传入即可。只有 PR 专属操作\n> 才使用上表工具。\n\n### Actions\n\n| 工具 | 说明 |\n|------|------|\n| `list_action_runs` | 列出 Gitea Actions 工作流运行（按 `status`、`branch`、`event`、`actor`、`head_sha` 筛选） |\n| `get_action_run` | 按 `runId` 获取单个工作流运行——取消/重试前检查状态 |\n| `cancel_action_run` | 取消**进行中**的运行（queued、in_progress、running）——部分破坏性 |\n| `rerun_action_run` | 重试整个**已完成**的运行——需 Gitea 1.26.0+ |\n| `rerun_action_run_failed_jobs` | 仅重试已完成运行中失败的 job——需 Gitea 1.26.0+ |\n\n> **说明：** 取消仅对进行中的运行有效；重试仅对已完成的运行有效。操作前务必先调用\n> `get_action_run` 确认当前状态，并向用户确认 `runId` 后再取消或重试。\n\n### Releases (版本发布)\n\n| 工具 | 说明 |\n|------|------|\n| `list_releases` | 列出仓库的版本发布（按 `draft`、`prerelease`、page/limit 筛选） |\n| `get_release` | 按数字 `id` 获取单个版本发布 |\n| `get_release_by_tag` | 按 `tag` 标签名获取版本发布（如 `v1.2.0`） |\n| `create_release` | 创建版本发布（`tag_name`、`name` 标题、`body` 发行说明、`target_commitish`、`draft`、`prerelease`） |\n| `update_release` | 更新版本发布的标题、内容、draft/prerelease 标记或重命名 tag |\n| `delete_release` | 按 `id` 删除版本发布——**不可逆** |\n\n> **说明：** 版本发布用数字 `id` 标识（来自 `list_releases` 或 `get_release_by_tag`），\n> 而非 tag 名。`create_release` 和 `update_release` 负责维护标题（`name`）与发行说明\n> （`body`）。删除版本发布时是否一并删除底层 Git tag 取决于 Gitea 配置。\n\n### 仓库 (Repository)\n\n| 工具 | 说明 |\n|------|------|\n| `update_repo` | 编辑仓库元数据——`description`、`name`（重命名）、`website`、`private`、`default_branch`（仅传入的字段会更新） |\n\n> **说明：** `name` 会重命名仓库并改变其 URL，操作前请向用户确认。修改仓库描述时\n> 只需传入 `description`（传空字符串可清空）。\n\n### Wiki\n\n| 工具 | 说明 |\n|------|------|\n| `list_wiki_pages` | 列出仓库全部 wiki 页面（仅元数据，page/limit 分页） |\n| `get_wiki_page` | 按 `pageName` 获取一个 wiki 页面——`content` 以纯 Markdown 返回（已解码 base64） |\n| `create_wiki_page` | 创建 wiki 页面（`title`、纯 Markdown `content`、可选 `message`） |\n| `update_wiki_page` | 按 `pageName` 编辑 wiki 页面；传 `title` 可重命名（仅传入的字段会更新） |\n| `delete_wiki_page` | 按 `pageName` 删除 wiki 页面——只能从 wiki git 克隆中恢复 |\n| `list_wiki_revisions` | 按 `pageName` 列出一个 wiki 页面的修订历史 |\n\n> **说明：** `pageName` 是 wiki URL 中显示的页面标题（如 `Home`、\n> `Getting-Started`）。`Home` 是落地页，`_Sidebar` 与 `_Footer` 是布局页。页面\n> 内容始终是纯 Markdown——工具会自动处理 API 的 base64 编解码。需要仓库已开启\n> wiki 功能（否则返回 404）。\n\n### 项目看板 (Projects — 占位工具)\n\n| 工具 | 说明 |\n|------|------|\n| `list_projects` | 列出项目看板（看板视图）—— **占位工具：始终返回 `[]`**（Gitea 尚无项目看板 REST API） |\n| `get_project` | 按 `id` 获取项目看板 —— **占位工具：始终返回未找到**（Gitea 尚无项目看板 REST API） |\n\n> **说明：** 这两个工具作为稳定契约存在，让规划类工作流可以查询项目看板而不报错。\n> 它们不会发起 HTTP 请求，始终返回空列表 / 未找到。当 Gitea 项目看板 REST API\n> 落地后（[go-gitea/gitea#36824](https://github.com/go-gitea/gitea/issues/36824)），\n> 真实的 HTTP 调用将被透明接入。\n\n### 仓库辅助 (Repository Helpers)\n\n| 工具 | 说明 |\n|------|------|\n| `list_my_repos` | 列出当前用户可访问的仓库 |\n| `resolve_repo` | 从项目 git 远程地址检测 `baseUrl`、`owner`、`repo`（优先 `upstream`，回退 `origin`）；回显的远程地址会剥离内嵌的 userinfo |\n| `gitea_status` | 查看认证处理状态 —— active 候选、已耗尽候选、最近一次错误（脱敏；永不暴露密钥） |\n| `configure_gitea` | 在运行时配置 Gitea 连接（仅当前会话，不持久化）。接受 `base_url`、`owner`、`repo`、`username`。提供 `base_url` 或 `username` 会触发从本地来源重新发现凭据——令牌永不通过此工具传递 |\n\n## AI 引导与技能\n\n服务端内置了引导内容，让助手正确、安全地使用工具，分三个通道：\n\n- **`instructions`（连接时）** —— 服务端在 MCP 握手时下发一份精炼策略；支持的\n  客户端会自动注入系统提示。\n- **工具描述** —— 每个工具的描述都标出其关键风险（分页、标签 ID 与名称、破坏性\n  作用范围）和最小用法示例。\n- **Prompts 与 Resources** —— 工作流模板（`triage_issues`、`summarize_issue`、\n  `triage_pull_requests`、`summarize_pull_request`、`audit_labels`、\n  `milestone_report`、`triage_action_runs`）与按需参考文档（字段参考、标签指南、\n  工具食谱），供支持的客户端使用。\n\n### 动作技能\n\n对 opencode 及其它工具，服务端内置了一组**按动作划分的技能**——每个工作流一\n个，助手只加载所需指引（避免例如创建时把删除说明一并带入造成幻觉）。用上方展示的\n`gitea-mcp init --tool <name>` 命令安装。\n\n| 技能 | 何时触发 |\n|------|----------|\n| `gitea-find-issues` | 发现 / 读取 / 分流 issues |\n| `gitea-update-issue` | 编辑字段、关闭、清空负责人/里程碑 |\n| `gitea-label-issue` | 为 issue 增加 / 替换 / 移除 / 清空标签 |\n| `gitea-manage-labels` | 创建或编辑标签定义 |\n| `gitea-comment-issue` | 在 issue 下发表推动讨论的评论 |\n| `gitea-summarize-issue` | 读取并总结某 issue 的讨论 |\n| `gitea-plan-milestones` | 创建 / 编辑 / 关闭里程碑 |\n| `gitea-resolve-repo` | 解析 owner/repo 或列出仓库 |\n| `gitea-configure` | 修复连接——实例地址、令牌或 401/403 报错 |\n| `gitea-find-pulls` | 发现 / 读取 PR 及其提交与变更文件 |\n| `gitea-create-pull` | 创建 PR（先做查重） |\n| `gitea-update-pull` | 编辑字段、关闭不合并、重开、WIP 切换 |\n| `gitea-merge-pull` | 合并 PR（先检查可合并性并经用户确认） |\n| `gitea-summarize-pull` | 读取并总结 PR 以供审查 |\n| `gitea-find-actions` | 发现 / 读取 Actions 工作流运行 |\n| `gitea-cancel-action` | 取消进行中的运行（先检查状态并经用户确认） |\n| `gitea-rerun-action` | 重试已完成的运行——全部或仅失败的 job |\n| `gitea-write-wiki` | 按内置开源 wiki 格式规范编写 / 编辑 wiki 页面 |\n\n每个技能都是面向 AI 的简短动作流程（目的、何时用、何时不用、规则、先检查什么）。\n评论、里程碑两类技能还内嵌**正文模板**（评论、\n里程碑），用以规范助手所写内容的格式。破坏性的单工具操作（删除 issue / 评论 /\n标签 / 里程碑）有意仅保留在工具描述里，不会污染创建类工作流。\n\n## 二次开发\n\n```bash\ngit clone https://github.com/amonstack/gitea-mcp.git\ncd gitea-mcp\nnpm ci\n```\n\n| 命令 | 说明 |\n|------|------|\n| `make lint` | 仅类型检查 |\n| `make build` | 将 `src/` 编译到 `dist/` |\n| `make test` | 运行单元测试 |\n| `make test-watch` | 监听模式运行测试 |\n| `make test-integration` | 运行集成测试（需要可用的 Gitea 实例） |\n| `make scan` | 用 gitleaks 扫描泄露的密钥（属于 `make verify`） |\n| `make dev` | 通过 tsx 直接运行 |\n\n完整的架构说明（模块布局、依赖关系、核心模式，以及新增工具的指引）请参阅\n[`docs/architecture.md`](docs/architecture.md)。\n\n## 参与贡献\n\n欢迎贡献！\n\n- 发现 bug 或有功能建议？请[提交一个 issue](https://github.com/amonstack/gitea_mcp/issues)。\n- 欢迎提交 Pull Request。本仓库遵循 [Conventional Commits](https://www.conventionalcommits.org/)，工作流见 [`AGENTS.md`](AGENTS.md) —— 首次 PR 前请先浏览一遍。\n- 模块布局、依赖关系、核心模式以及新增工具的指引，请参阅 [`docs/architecture.md`](docs/architecture.md)。\n\n## 许可证\n\n[MIT](LICENSE) —— 版权所有 (c) 2026 [amonstack](https://github.com/amonstack)。\n","readmeFilename":"README.zh-CN.md"}