serena

serena is an MCP server for Claude Code, Codex, Cursor, Gemini CLI, OpenCode from GetKlai/klai. Its token cost is not measured, scanned A, original, MIT.

An MCP server that adds semantic code navigation for Python and TypeScript projects. MCP is a standard way for an agent to call an external tool; this server uses language-aware information to find symbols, their references, and replace a symbol's body.

In plain words
What is it for?
Use it to locate Python or TypeScript definitions, find code that refers to them, and replace the implementation of a selected symbol.
Why use it?
Text search can miss relationships between definitions and uses or make broad edits risky. Symbol-aware navigation helps the agent explore and modify code by its programming-language structure.

MCP server for Claude CodeCodexCursorGemini CLIOpenCode

Written for no agent in particular: it speaks MCP, so any client can run it. Also seen: mentions Claude Code; mentions AGENTS.md; listed in a Claude config.

One of 5 entries in .mcp.json upstream. Installing this one merges just its entry into your config; the other 4 are separate, each on its own page.

Good fit Use it to locate Python or TypeScript definitions, find code that refers to them, and replace the implementation of a selected symbol.

Compare 6 mcp servers from other repositories ↓
Install with agentmods
npx agentmods add mcp/getklai/klai/serena

Installing this writes the configuration, not the program: `serena` has to be on your PATH already, or the server will not start.

View source ↗ GetKlai/klai
Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

Clone the repo
git clone --depth 1 https://github.com/GetKlai/klai

Installing this writes the configuration, not the program: `serena` has to be on your PATH already, or the server will not start.

Made for: Claude Code, Codex, Cursor, Gemini CLI, OpenCode.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for serena

README.md
[![agentmods](https://agentmods.dev/badge/mcp/getklai/klai/serena/github.svg)](https://agentmods.dev/mcp/getklai/klai/serena)
Your own site
<a href="https://agentmods.dev/mcp/getklai/klai/serena"><img src="https://agentmods.dev/badge/mcp/getklai/klai/serena/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for serena

Your own site · 80×15
<a href="https://agentmods.dev/mcp/getklai/klai/serena"><img src="https://agentmods.dev/badge/mcp/getklai/klai/serena.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session not measured What this adds to a session before it is invoked.
When invoked not measured Not applicable: nothing here is loaded into a session.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Security

Grade A, and why

serena scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 14d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

.mcp.json · 19 lines

What it actually says

{
  "serena": {
    "$comment": "Semantic code navigation (find_symbol, find_referencing_symbols, replace_symbol_body) over LSP for Python and TypeScript. --project . binds Serena to the directory Claude Code spawns it in, which is the worktree root; --project-from-cwd guesses instead, and guesses wrong when Agent Teams spawn inside a worktree (oraios/serena#1496). --context claude-code drops Serena's own read/search/shell tools so it only adds the symbolic ones on top of Claude Code's native Read/Grep/Bash. no-onboarding suppresses the onboarding tool: this repo's knowledge lives in AGENTS.md and .claude/rules, and a per-worktree onboarding run would rebuild a throwaway copy of it every session. --open-web-dashboard False stops Serena opening a browser tab on every server start, which with one server per session per worktree is every session. It does not control whether the dashboard runs: web_dashboard in ~/.serena/serena_config.yml does, it is false on this machine, and nothing listens on 24282 as a result. Install and troubleshooting: docs/setup/mcp-servers.md Section 1.",
    "type": "stdio",
    "command": "serena",
    "args": [
      "start-mcp-server",
      "--context",
      "claude-code",
      "--project",
      ".",
      "--add-mode",
      "no-onboarding",
      "--open-web-dashboard",
      "False"
    ],
    "env": {}
  }
}
Same file

What else .mcp.json configures

This page is one entry in a file that holds 5. Installing the file brings all of them; each is measured and scanned on its own page.

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 14d ago First seen · 19 lines scan A 4d47c545e977

Subscribe to this mod's changes

serena is an MCP server published in the GitHub repository GetKlai/klai (11 stars, last pushed today), licensed MIT. Its token cost is not measured: an MCP server costs its tool schemas, not its config file. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-16.