{"adoption": {"forks": 1919, "observed_at": "2026-08-28T04:11:48.371930+00:00", "stars": 28526}, "canonical_url": "https://ross.abutalabs.com/products/serena", "card": {"archived": false, "artifact_type": "library", "description": "A powerful MCP toolkit for coding, providing semantic retrieval and editing capabilities  - the IDE for your agent", "domain": ["developer-tools", "large-language-models", "programming-languages"], "enriched": true, "function": ["mcp", "agent-framework", "developer-tools", "search-engine", "parser"], "health_score": 99, "homepage": "https://oraios.github.io/serena", "language": "Python", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["oraios/serena"], "name": "oraios/serena", "platform": ["python", "cross-platform", "cli"], "pushed_at": "2026-08-20T06:51:15+00:00", "repo": "oraios/serena", "stars": 28526, "tags": ["mcp-server", "coding-agent", "semantic-code-tools", "language-server-protocol", "refactoring", "code-retrieval", "ide-tools", "vibe-coding", "ai-agents"], "topics": ["agent", "ai", "vibe-coding", "mcp-server", "ai-coding", "language-server", "programming", "claude", "claude-code", "codex", "ide", "jetbrains"], "urls": [], "use_cases": ["give my coding agent IDE-level semantic code tools", "enable cross-file renames and reference lookups for an AI agent", "connect a language server to Claude Code via MCP", "make my LLM agent work reliably in large codebases", "semantic code search and editing for AI agents", "set up an MCP server for coding assistance", "refactor code with an AI agent without fragile text edits"], "what_it_is": "Serena is an MCP toolkit that gives AI coding agents semantic code retrieval, editing, refactoring, and debugging capabilities at the symbol level, powered by language servers. It integrates with any MCP-compatible client such as Claude Code, Codex, or JetBrains IDEs.", "when_to_avoid": ["you don't use AI coding agents or MCP clients", "you need a standalone IDE rather than agent tooling", "you only work in tiny projects where simple grep-based agent tools suffice"], "when_to_choose": ["you use an MCP-compatible coding agent (Claude Code, Codex, Copilot CLI) and want symbol-level code understanding", "you work in large or multi-language codebases where text-based agent edits are error-prone", "you want faster, more reliable refactoring and navigation from your AI assistant"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/serena", "repo": "oraios/serena", "role": "main", "score": 85}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:11:48.371930+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T16:54:22.204201+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "74265a5162b065a69557b426f2ec7d71f1347d079923881d9855d61391ca2045", "fetched_at": "2026-08-28T04:11:48.371930+00:00", "kind": "readme", "missing": false, "url": "https://github.com/oraios/serena"}, {"content_hash": "a1b369e1d44c029d0ddfdabd19b337977c4a63baddf6559b85208f577f642ccc", "fetched_at": "2026-08-29T07:50:45.303904+00:00", "kind": "homepage", "missing": false, "url": "https://oraios.github.io/serena"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:11:48.371930+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T16:54:22.204201+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "74265a5162b065a69557b426f2ec7d71f1347d079923881d9855d61391ca2045", "fetched_at": "2026-08-28T04:11:48.371930+00:00", "kind": "readme", "missing": false, "url": "https://github.com/oraios/serena"}, {"content_hash": "a1b369e1d44c029d0ddfdabd19b337977c4a63baddf6559b85208f577f642ccc", "fetched_at": "2026-08-29T07:50:45.303904+00:00", "kind": "homepage", "missing": false, "url": "https://oraios.github.io/serena"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T16:54:22.204201+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "74265a5162b065a69557b426f2ec7d71f1347d079923881d9855d61391ca2045", "fetched_at": "2026-08-28T04:11:48.371930+00:00", "kind": "readme", "missing": false, "url": "https://github.com/oraios/serena"}, {"content_hash": "a1b369e1d44c029d0ddfdabd19b337977c4a63baddf6559b85208f577f642ccc", "fetched_at": "2026-08-29T07:50:45.303904+00:00", "kind": "homepage", "missing": false, "url": "https://oraios.github.io/serena"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:11:48.371930+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:11:48.371930+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:11:48.371930+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T16:54:22.204201+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "74265a5162b065a69557b426f2ec7d71f1347d079923881d9855d61391ca2045", "fetched_at": "2026-08-28T04:11:48.371930+00:00", "kind": "readme", "missing": false, "url": "https://github.com/oraios/serena"}, {"content_hash": "a1b369e1d44c029d0ddfdabd19b337977c4a63baddf6559b85208f577f642ccc", "fetched_at": "2026-08-29T07:50:45.303904+00:00", "kind": "homepage", "missing": false, "url": "https://oraios.github.io/serena"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:11:48.371930+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:11:48.371930+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T16:54:22.204201+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "74265a5162b065a69557b426f2ec7d71f1347d079923881d9855d61391ca2045", "fetched_at": "2026-08-28T04:11:48.371930+00:00", "kind": "readme", "missing": false, "url": "https://github.com/oraios/serena"}, {"content_hash": "a1b369e1d44c029d0ddfdabd19b337977c4a63baddf6559b85208f577f642ccc", "fetched_at": "2026-08-29T07:50:45.303904+00:00", "kind": "homepage", "missing": false, "url": "https://oraios.github.io/serena"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:11:48.371930+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:11:48.371930+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:11:48.371930+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T16:54:22.204201+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "74265a5162b065a69557b426f2ec7d71f1347d079923881d9855d61391ca2045", "fetched_at": "2026-08-28T04:11:48.371930+00:00", "kind": "readme", "missing": false, "url": "https://github.com/oraios/serena"}, {"content_hash": "a1b369e1d44c029d0ddfdabd19b337977c4a63baddf6559b85208f577f642ccc", "fetched_at": "2026-08-29T07:50:45.303904+00:00", "kind": "homepage", "missing": false, "url": "https://oraios.github.io/serena"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:11:48.371930+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:11:48.371930+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T16:54:22.204201+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "74265a5162b065a69557b426f2ec7d71f1347d079923881d9855d61391ca2045", "fetched_at": "2026-08-28T04:11:48.371930+00:00", "kind": "readme", "missing": false, "url": "https://github.com/oraios/serena"}, {"content_hash": "a1b369e1d44c029d0ddfdabd19b337977c4a63baddf6559b85208f577f642ccc", "fetched_at": "2026-08-29T07:50:45.303904+00:00", "kind": "homepage", "missing": false, "url": "https://oraios.github.io/serena"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T16:54:22.204201+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "74265a5162b065a69557b426f2ec7d71f1347d079923881d9855d61391ca2045", "fetched_at": "2026-08-28T04:11:48.371930+00:00", "kind": "readme", "missing": false, "url": "https://github.com/oraios/serena"}, {"content_hash": "a1b369e1d44c029d0ddfdabd19b337977c4a63baddf6559b85208f577f642ccc", "fetched_at": "2026-08-29T07:50:45.303904+00:00", "kind": "homepage", "missing": false, "url": "https://oraios.github.io/serena"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T16:54:22.204201+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "74265a5162b065a69557b426f2ec7d71f1347d079923881d9855d61391ca2045", "fetched_at": "2026-08-28T04:11:48.371930+00:00", "kind": "readme", "missing": false, "url": "https://github.com/oraios/serena"}, {"content_hash": "a1b369e1d44c029d0ddfdabd19b337977c4a63baddf6559b85208f577f642ccc", "fetched_at": "2026-08-29T07:50:45.303904+00:00", "kind": "homepage", "missing": false, "url": "https://oraios.github.io/serena"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T16:54:22.204201+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "74265a5162b065a69557b426f2ec7d71f1347d079923881d9855d61391ca2045", "fetched_at": "2026-08-28T04:11:48.371930+00:00", "kind": "readme", "missing": false, "url": "https://github.com/oraios/serena"}, {"content_hash": "a1b369e1d44c029d0ddfdabd19b337977c4a63baddf6559b85208f577f642ccc", "fetched_at": "2026-08-29T07:50:45.303904+00:00", "kind": "homepage", "missing": false, "url": "https://oraios.github.io/serena"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 98, "longevity": 37, "rhythm": 96}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 528, "days_push": 13, "days_rel": 24, "gap_med": 7.0, "n_releases_24m": 15}, "score": 85, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}