Skip to content

Commit e554cb7

Browse files
Merge pull request #24 from CodeAnt-AI/mcp
mcp
2 parents f23793f + f17e7f5 commit e554cb7

16 files changed

Lines changed: 1910 additions & 14 deletions

File tree

.claude-plugin/marketplace.json

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
{
2+
"name": "codeant-cli",
3+
"owner": {
4+
"name": "CodeAnt AI",
5+
"email": "support@codeant.ai"
6+
},
7+
"metadata": {
8+
"description": "CodeAnt AI CLI and MCP server — org-wide secret triage, cross-repo SAST/SCA findings, on-demand scans, and local PR review inside Claude.",
9+
"version": "0.4.14"
10+
},
11+
"plugins": [
12+
{
13+
"name": "codeant",
14+
"source": "./.",
15+
"description": "Drive CodeAnt AI from inside Claude Code via the CodeAnt MCP server. Read-only by default; write tools (trigger scan, resolve PR thread) gated behind CODEANT_READ_ONLY=0.",
16+
"version": "0.4.14",
17+
"author": {
18+
"name": "CodeAnt AI",
19+
"email": "support@codeant.ai"
20+
},
21+
"homepage": "https://codeant.ai",
22+
"repository": "https://github.com/CodeAnt-AI/codeant-cli",
23+
"license": "MIT",
24+
"keywords": [
25+
"code-review",
26+
"pull-requests",
27+
"security",
28+
"secrets",
29+
"sast",
30+
"sca",
31+
"static-analysis",
32+
"mcp"
33+
],
34+
"category": "code-quality"
35+
}
36+
]
37+
}

.claude-plugin/plugin.json

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
{
2+
"name": "codeant",
3+
"version": "0.4.14",
4+
"description": "CodeAnt AI MCP server inside Claude Code — org-wide secret triage, cross-repo SAST/SCA findings, on-demand scans, and local PR review.",
5+
"author": {
6+
"name": "CodeAnt AI",
7+
"email": "support@codeant.ai"
8+
},
9+
"homepage": "https://codeant.ai",
10+
"documentation": "https://docs.codeant.ai/cli/claude-code-plugin",
11+
"repository": "https://github.com/CodeAnt-AI/codeant-cli",
12+
"license": "MIT",
13+
"keywords": [
14+
"code-review",
15+
"pull-requests",
16+
"security",
17+
"secrets",
18+
"sast",
19+
"sca",
20+
"static-analysis",
21+
"mcp"
22+
],
23+
"prerequisites": {
24+
"commands": ["codeant"]
25+
}
26+
}

.github/workflows/publish-mcpb.yml

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
name: Publish MCPB Bundle
2+
3+
on:
4+
push:
5+
branches:
6+
- main
7+
workflow_dispatch:
8+
9+
jobs:
10+
publish-mcpb:
11+
runs-on: ubuntu-latest
12+
permissions:
13+
contents: write
14+
steps:
15+
- uses: actions/checkout@v4
16+
17+
- uses: actions/setup-node@v4
18+
with:
19+
node-version: '20'
20+
21+
- id: version
22+
run: echo "version=$(jq -r .version package.json)" >> "$GITHUB_OUTPUT"
23+
24+
- run: npm ci
25+
26+
- run: npm run mcpb:build
27+
28+
- uses: actions/upload-artifact@v4
29+
with:
30+
name: codeant-mcpb-v${{ steps.version.outputs.version }}
31+
path: dist/codeant.mcpb
32+
if-no-files-found: error
33+
34+
- uses: softprops/action-gh-release@v2
35+
with:
36+
tag_name: mcpb-v${{ steps.version.outputs.version }}
37+
name: CodeAnt MCPB v${{ steps.version.outputs.version }}
38+
files: dist/codeant.mcpb
39+
fail_on_unmatched_files: true
40+
body: |
41+
CodeAnt MCPB bundle v${{ steps.version.outputs.version }}
42+
43+
Commit: ${{ github.sha }}
44+
Message: ${{ github.event.head_commit.message }}
45+
46+
Install instructions: https://github.com/CodeAnt-AI/codeant-cli/blob/main/mcp.md

.github/workflows/publish.yml

Lines changed: 37 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,55 @@
1-
name: Publish Package
1+
name: Build CLI Release
22

33
on:
44
push:
55
branches:
66
- main
7+
workflow_dispatch:
78

89
jobs:
9-
publish:
10+
build-cli:
1011
runs-on: ubuntu-latest
1112
permissions:
12-
contents: read
13+
contents: write
1314
steps:
1415
- uses: actions/checkout@v4
1516

1617
- uses: actions/setup-node@v4
1718
with:
1819
node-version: '20'
19-
registry-url: 'https://registry.npmjs.org'
20+
21+
- id: version
22+
run: echo "version=$(jq -r .version package.json)" >> "$GITHUB_OUTPUT"
2023

2124
- run: npm ci
2225

23-
- run: npm publish --access public
24-
env:
25-
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
26+
- run: npm pack
27+
# produces codeant-cli-<version>.tgz in the working directory
28+
29+
- uses: actions/upload-artifact@v4
30+
with:
31+
name: codeant-cli-v${{ steps.version.outputs.version }}
32+
path: codeant-cli-${{ steps.version.outputs.version }}.tgz
33+
if-no-files-found: error
34+
35+
- uses: softprops/action-gh-release@v2
36+
with:
37+
tag_name: cli-v${{ steps.version.outputs.version }}
38+
name: CodeAnt CLI v${{ steps.version.outputs.version }}
39+
files: codeant-cli-${{ steps.version.outputs.version }}.tgz
40+
fail_on_unmatched_files: true
41+
body: |
42+
CodeAnt CLI npm tarball v${{ steps.version.outputs.version }}
43+
44+
Commit: ${{ github.sha }}
45+
Message: ${{ github.event.head_commit.message }}
46+
47+
## Publish to npm
48+
49+
Download the `.tgz` and run:
50+
51+
```
52+
npm publish codeant-cli-${{ steps.version.outputs.version }}.tgz --access public
53+
```
54+
55+
(Requires npm auth with publish rights on the `codeant-cli` package.)

.mcp.json

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
{
2+
"mcpServers": {
3+
"codeant": {
4+
"command": "codeant",
5+
"args": ["mcp"],
6+
"env": {
7+
"CODEANT_READ_ONLY": "1"
8+
}
9+
}
10+
}
11+
}

README.md

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -236,6 +236,24 @@ node src/index.js secrets --last-commit
236236
node src/index.js secrets --all
237237
```
238238

239+
## MCP / Claude Connector
240+
241+
This package also ships an MCP (Model Context Protocol) server that exposes CodeAnt's scan, review, and PR data as tools to Claude and other MCP clients. The same source tree is packaged as a Desktop Extension (`.mcpb`) for one-click install in Claude Desktop.
242+
243+
See [mcp.md](mcp.md) for the tools listing, install paths (Claude Code CLI, Claude Desktop manual config, MCPB double-click), and bundling/submission instructions.
244+
245+
## Privacy Policy
246+
247+
Full policy: **https://codeant.ai/privacy**
248+
249+
Summary of what this CLI / MCP server sends and stores:
250+
251+
- **Data sent to CodeAnt servers.** Authentication tokens, repository metadata (org, repo, branch, PR identifiers), and — for local review and secrets scanning — the code snippets and diffs you explicitly ask CodeAnt to scan. Nothing is sent on its own; every call is in response to a command you run or a tool Claude invokes.
252+
- **Where it is stored.** On CodeAnt's infrastructure (https://api.codeant.ai or your self-hosted instance). Locally, the auth token is cached in `~/.codeant/config.json` on your machine.
253+
- **Third-party sharing.** None beyond CodeAnt's own infrastructure. CodeAnt does not sell or share your data with third parties for marketing.
254+
- **Retention.** Scan findings and PR data are retained per the CodeAnt account's retention policy (see the privacy URL above). Local config persists until you run `codeant logout` or delete `~/.codeant/config.json`.
255+
- **Contact.** support@codeant.ai
256+
239257
## License
240258

241259
MIT

0 commit comments

Comments
 (0)