Semgrep
listing.by
Scan code for security issues and bugs with Semgrep static analysis rules from your AI assistant.
listing.connect
listing.explain.oauth
listing.note.oauth
listing.share.h
listing.share.p
mcp.tc/i/semgreplisting.about
Connects your assistant to Semgrep, a static analysis tool that searches code, finds bugs and enforces security guardrails and coding standards. Semgrep supports more than 30 languages, and its rules look like the code you already write.
The hosted endpoint uses streamable HTTP and asks users to sign in with their Semgrep account through OAuth. The hosted server is marked experimental. A local option runs with semgrep mcp, and the older uvx semgrep-mcp package is legacy. The tool list is not published, so check the Semgrep docs for current tools.
listing.can
- Scan source code for security vulnerabilities and bugs
- Apply Semgrep rules to find insecure code patterns
- Check code against coding standards and guardrails
- Work with code in more than 30 languages
listing.tools
listing.notools.oauth
listing.prompts
Scan this Python file for security issues with Semgrep.
Check my code for insecure patterns before I open a pull request.
Run Semgrep rules on this function and explain the findings.
Which Semgrep findings in this snippet should I fix first?
listing.setup.h
listing.setup.oauth
Claude Code
- Run this in a terminal, in your project folder:
claude mcp add --transport http semgrep https://mcp.semgrep.ai/mcp- Start Claude Code, type
/mcp, pick semgrep and choose Authenticate. A browser window opens for the Semgrep sign-in.
Add --scope user to make it available in every project, not just this one.
Claude Desktop
- Open Settings → Connectors and click Add custom connector.
- Name it Semgrep and paste this URL:
https://mcp.semgrep.ai/mcp- Click Add, then Connect, and sign in when Semgrep asks.
Claude Desktop's JSON config file only starts local servers. Remote servers go through Connectors, and connectors you add on claude.ai show up here too.
claude.ai
- Open the connector form on claude.ai. This button fills in the name and URL for you:
- Check that the URL reads
https://mcp.semgrep.ai/mcpand click Add. - Click Connect and sign in when Semgrep asks.
Free plans allow one custom connector. On Team and Enterprise plans an owner adds it under Organization settings → Connectors.
ChatGPT
- On chatgpt.com, open Settings → Security and login and turn on Developer mode.
- Go to
chatgpt.com/pluginsand click + to create an app for a remote MCP server. - Paste
https://mcp.semgrep.ai/mcpas the server URL and choose OAuth. ChatGPT sends you to Semgrep to sign in.
Developer mode is available on the web for Plus, Pro, Business, Enterprise and Education accounts.
Cursor
Or add it by hand to ~/.cursor/mcp.json (all projects) or .cursor/mcp.json (this project):
{
"mcpServers": {
"semgrep": {
"url": "https://mcp.semgrep.ai/mcp"
}
}
}Cursor shows Needs login next to the server. Click it to sign in.
VS Code
Install in VS Code a11y.new_tab
Or from a terminal:
code --add-mcp '{"name":"semgrep","type":"http","url":"https://mcp.semgrep.ai/mcp"}'Or commit it to the repo in .vscode/mcp.json:
{
"servers": {
"semgrep": {
"type": "http",
"url": "https://mcp.semgrep.ai/mcp"
}
}
}VS Code asks you to sign in the first time the server starts.
Devin Desktop
- Add it to
~/.config/devin/mcp_config.json(macOS and Linux) or%APPDATA%\devin\mcp_config.json(Windows):
{
"mcpServers": {
"semgrep": {
"serverUrl": "https://mcp.semgrep.ai/mcp"
}
}
}- Refresh the MCP server list in Cascade and sign in when asked.
Devin Desktop is the new name for Windsurf. It reads serverUrl (or url) for remote servers.
Codex
codex mcp add semgrep --url https://mcp.semgrep.ai/mcp
codex mcp login semgrepOr edit ~/.codex/config.toml directly:
[mcp_servers.semgrep]
url = "https://mcp.semgrep.ai/mcp"Gemini CLI
gemini mcp add --transport http semgrep https://mcp.semgrep.ai/mcpThen, inside Gemini CLI, run /mcp auth semgrep to sign in.
This adds it to the current project. Add -s user to use it everywhere.
Any client
Most clients accept this shape. Some name the URL field differently: serverUrl in Devin Desktop, httpUrl in Gemini CLI's settings file.
{
"mcpServers": {
"semgrep": {
"type": "http",
"url": "https://mcp.semgrep.ai/mcp"
}
}
}Zed puts servers under context_servers in its settings. Cline needs "type": "streamableHttp", or it assumes SSE.
Client only starts local servers? Bridge it with npx -y mcp-remote https://mcp.semgrep.ai/mcp.
listing.faq
Can I paste mcp.tc/i/semgrep into my MCP client?
No. mcp.tc links are pages, not server addresses. Connect with https://mcp.semgrep.ai/mcp, so your client talks to Semgrep directly. The sign-in token only works there anyway. The quick link is for sharing: it opens this page, with setup steps for every client.
Does Semgrep need an API key or a sign-in?
Yes, you need a Semgrep account. The first time your client connects, it opens Semgrep's sign-in page. The token goes straight to the server's own URL, never through mcp.tc.
Is Semgrep a remote or a local server?
Remote. Semgrep hosts it at https://mcp.semgrep.ai/mcp, and it speaks Streamable HTTP. There's nothing to install.
What can Semgrep do?
You can scan source code for security vulnerabilities and bugs, apply Semgrep rules to find insecure code patterns and check code against coding standards and guardrails.
Which clients can use it?
Any client that supports remote MCP servers: Claude Code, Claude Desktop, claude.ai, ChatGPT in developer mode, Cursor, VS Code, Devin Desktop, Codex, Gemini CLI, Zed and others. The setup steps cover each one.
Who wrote this page?
mcp.tc's robot read Semgrep's own metadata (its MCP handshake, tool list and public pages), and an AI model drafted the text from it. A person reviews anything the checks can't confirm. The text can still be wrong, so if you spot a mistake, use Report this listing on this page.
listing.em.h
listing.em.lead listing.em.how
listing.em.badge
[](https://mcp.tc/i/semgrep)<a href="https://mcp.tc/i/semgrep"><img src="https://mcp.tc/i/semgrep/badge.svg" alt="Semgrep on mcp.tc" height="20"></a>listing.em.badge_note
listing.em.widget
<script src="https://mcp.tc/w/semgrep.js" async></script>listing.em.widget_note
iframe
<iframe src="https://mcp.tc/embed/semgrep" title="Semgrep on mcp.tc" width="420" height="200" loading="lazy" allow="clipboard-write" style="border:0;border-radius:8px;max-width:100%"></iframe>listing.em.iframe_note
listing.disclaimer_checked