A side-by-side look at the GenPM and Sem MCP servers: transport, auth, tools, quality signals, and the config to install either one in Claude, Cursor, Windsurf or VS Code.
Verdict: choose GenPM for version control work as a local process; choose Sem for version control as a local process. You can also run both side by side in one mcpServers block.
genpm_search, genpm_info, genpm_add.SEM_CACHE_DIR.Rows where the two servers differ are marked.
| Spec | ||
|---|---|---|
| Category | Version Control | Version Control |
| Quality signal | 61/100 · Good | 51/100 · Good |
| Install command | Confirmed | Confirmed |
| Transport | Local subprocess (stdio) | Local subprocess (stdio) |
| Auth | No auth required | No auth required |
| Pricing | Free | Free |
| Required env vars | None listed | SEM_CACHE_DIR |
| Verified owner | Community listing | Community listing |
| GitHub stars | 0 | 3,415 |
| Directory activity | 1 views 0 installs 0 upvotes | 2 views 0 installs 0 upvotes |
| Tools | 10 | Not listed |
| Full listing | View GenPM | View Sem |
genpm_searchSearch the GenPM registry for injectable architecture modules (code + AI rules + MCP). Use before installing anything.genpm_infoGet the resolved manifest, dependencies, env vars, MCP servers and AI rules of a GenPM package, plus whether it is already installed here.genpm_addInject a GenPM package (and its GenPM dependencies), or every package of a recipe, into the project. ALWAYS call with dryRun:true first and show the plan to the user.genpm_listList GenPM packages installed in this project with local modifications (drift).genpm_removeRemove an installed GenPM package. Fails with E_DRIFT if the user modified its files; never deletes modified code silently.genpm_outdatedCompare installed GenPM packages with the latest published versions.genpm_diffUnified diff between the installed version and a newer one, with paths remapped to where the package lives in this project, plus the local changes (drift). Use it to update a package while keeping the user's edits: apply the patch semantically, then call genpm_update with strategy "ai".genpm_updateUpdate an installed package. strategy "3way" merges upstream changes with local edits on disk (conflicts stay with <<<<<<< markers and are listed). strategy "ai" writes no files: use it only after you applied the genpm_diff patch yourself, to record the new version in genpm.lock. Call with dryRun:true first and show the plan to the user.genpm_auditVerify integrity, registry signatures, security advisories and yanked versions. Run it before modifying installed packages and tell the user about any finding.genpm_validateValidate a GenPM package being authored here (genpm.json, AI rules, files, security scan) before publishing.No tool names declared yet. Check the project README from the listing page.
Paste either block (or both) into your client config, e.g. claude_desktop_config.json or ~/.cursor/mcp.json. We only show a config when the install command is confirmed.
{
"mcpServers": {
"genpm": {
"command": "npx",
"args": [
"-y",
"@genpm-net/mcp"
]
}
}
}
{
"mcpServers": {
"sem": {
"command": "npx",
"args": [
"-y",
"sem"
],
"env": {
"SEM_CACHE_DIR": "YOUR_SEM_CACHE_DIR_HERE"
}
}
}
}