Standalone Serena MCP tools for code intelligence - symbol search, file ops, memory, editing, config, workflow helpers, and shell execution without MCP server
Standalone Serena MCP tools for code intelligence without requiring MCP server.
When running from project root, use full path to scripts:
(Optional) Register project:
python .claude/skills/serena-skills/scripts/project-config/activate_project.py --project-path .
Get structure:
# get_symbols_overview.py: Use --file parameter (not --path)
python .claude/skills/serena-skills/scripts/symbol-search/get_symbols_overview.py --project-root . --file src/main.ts
Locate target:
# find_symbol.py: Use --pattern parameter (not --symbol)
python .claude/skills/serena-skills/scripts/symbol-search/find_symbol.py --project-root . --pattern "MyClass"
Edit:
python .claude/skills/serena-skills/scripts/code-editor/replace_content.py --project-root . --file src/main.ts --old-string "old" --new-string "new"
All scripts support --project-root parameter (use . for current directory when running from project root).
Maps Serena MCP tools to standalone scripts organized by category.
When running from project root, use path: .claude/skills/serena-skills/scripts/<category>/<script>.py
.claude/skills/serena-skills/scripts/symbol-search/)LSP-based code analysis - maps to Serena MCP symbol tools:
--file) - File structure overview (classes, functions, methods)--pattern) - Search by name path pattern (Class/method, /absolute/path)--symbol-name) - Find all usages of a symbol--symbol-path) - Insert code around symbols--old-name, --new-name) - Safe refactoring with automatic reference updates.claude/skills/serena-skills/scripts/memory-manager/)Persistent project knowledge - maps to Serena MCP memory tools:
--name, --content) / read_memory.py (--name) - Store/retrieve project knowledge--name) / edit_memory.py (--name, --content) - Manage memoriesStorage: .tmp/.serena-skills/memories/
.claude/skills/serena-skills/scripts/file-ops/)File system operations - maps to Serena MCP file tools:
--file) - Read file contents or line ranges--path) - List directories (with recursion support)--pattern) - Find files by name pattern (wildcards)--pattern) - Regex search with context (grep-like).claude/skills/serena-skills/scripts/code-editor/)Code modification - maps to Serena MCP editing tools:
--symbol-path, --new-body) - Symbol-level replacement (LSP-aware)--file, --old-string, --new-string) - Text-based find/replace (literal or regex)--file, --content) - Create new file--file, --line) - Line-based edits.claude/skills/serena-skills/scripts/project-config/)Project setup and configuration - maps to Serena MCP config tools:
--project-path) - Register and configure project (creates .tmp/.serena-skills/)--project-root) - Display current configuration--project-root) - Manage project.yml--project-root) - Unregister project.claude/skills/serena-skills/scripts/workflow-assistant/)Workflow helpers - maps to Serena MCP workflow tools:
.claude/skills/serena-skills/scripts/shell-executor/)Command execution - maps to Serena MCP command tool:
--command) - Safe shell execution with timeout protectionNote: When running from project root, prefix all script paths with .claude/skills/serena-skills/scripts/
python .claude/skills/serena-skills/scripts/file-ops/list_dir.py --project-root . --path . --recursive - Get structurepython .claude/skills/serena-skills/scripts/symbol-search/get_symbols_overview.py --project-root . --file src/main.ts - Overview key filespython .claude/skills/serena-skills/scripts/symbol-search/find_symbol.py --project-root . --pattern "Class" --include-body - Explore implementationspython .claude/skills/serena-skills/scripts/memory-manager/write_memory.py --project-root . --name "findings" --content "..." - Document findingspython .claude/skills/serena-skills/scripts/symbol-search/find_symbol.py --project-root . --pattern "target" - Locate targetpython .claude/skills/serena-skills/scripts/symbol-search/find_referencing_symbols.py --project-root . --symbol "target" - Check impactpython .claude/skills/serena-skills/scripts/code-editor/replace_content.py --project-root . --file src/file.ts --old-string "old" --new-string "new" - Editpython .claude/skills/serena-skills/scripts/shell-executor/execute_shell_command.py --project-root . --command "npm test" - Run testspython .claude/skills/serena-skills/scripts/symbol-search/find_symbol.py --project-root . --pattern "target" - Understand structurepython .claude/skills/serena-skills/scripts/symbol-search/find_referencing_symbols.py --project-root . --symbol "target" - Map dependenciespython .claude/skills/serena-skills/scripts/symbol-search/rename_symbol.py --project-root . --old-name "OldName" --new-name "NewName" - Safe rename across codebasepython .claude/skills/serena-skills/scripts/code-editor/replace_symbol_body.py --project-root . --symbol "target" --new-body "..." - Modify implementationsUnderstanding code? → symbol-search/get_symbols_overview.py → symbol-search/find_symbol.py
Modifying code? → code-editor/replace_symbol_body.py (symbol-level) or code-editor/replace_content.py (text-level)
Searching? → file-ops/search_for_pattern.py (text) or symbol-search/find_symbol.py (symbols)
Widespread changes? → symbol-search/rename_symbol.py (names) or code-editor/replace_content.py (patterns)
Track findings? → memory-manager/write_memory.py (session) or workflow-assistant/update_onboarding.py (permanent)
All paths relative to .claude/skills/serena-skills/scripts/ when running from project root.
Symbol-level (LSP-aware):
code-editor/replace_symbol_body.py, symbol-search/insert_*_symbol.py, symbol-search/rename_symbol.pyText-level (pattern matching):
code-editor/replace_content.py, code-editor/*_lines.py, code-editor/insert_at_line.pyAll paths relative to .claude/skills/serena-skills/scripts/ when running from project root.
Requirements:
pyright for Python).venv when presentStorage:
{project}/.tmp/.serena-skills/{project}/.tmp/.serena-skills/memories/{project}/.tmp/.serena-skills/project.ymlTroubleshooting:
--language typescript or run activate_project.py --project-path . --language typescript--lsp-timeout 20 for large projectspython3 → Use pythonlib import errors → Set PYTHONPATH:
$env:PYTHONPATH = ".claude/skills/serena-skills"export PYTHONPATH=.claude/skills/serena-skillscd .claude/skills/serena-skills && python scripts/...See SETUP.md for complete installation guide, including: