Symbols
What it does
Fast polyglot source code intelligence: symbols, imports, dependencies, and impact analysis.
- Connects パソコンで動く
- Account or key No key needed
- Category 開発者ツール
インストール
使っているAIアプリを選んで、設定をコピーしてください。
チェック 3/3 合格 · あなたのパソコンで動きます
まず:どの AI を使っていますか?
使っているアプリを選ぶと、下に手順が表示されます。
Claude につなげますが、先に準備が必要です
キー不要、インストール不要 · パソコン版 Claude アプリ(Windows または Mac)のみ。Web やスマホでは使えません
ファイルをダブルクリックし、パソコン版 Claude アプリで Install を押す
試してみる
Symbols を使って、私に何ができるか教えて、1 つやってみせて✓ Claude が Symbols を使っていると言うか、回答に Symbols のツール名が出れば接続成功です
メニュー名は 2026年11月11日 に Anthropic のヘルプページで確認 · アプリのバージョンにより画面が少し違うことがあります
ChatGPT はまだ Symbols につなげません
Symbols はパソコンに入れて使うものですが、ChatGPT は Web 上で動くサーバーにしかつなげません
代わりにできること
A · Symbols につなげるアプリを使う
- キー不要、インストール不要 · パソコン版 Claude アプリ(Windows または Mac)のみ。Web やスマホでは使えません
B · 開発者ツール の中で ChatGPT につなげる別のサーバー
同じカテゴリでよく使われているものから、キーなしでアドレスだけでつなげるものを選びました
- Sentry✓ ChatGPT
- Compiler Explorer✓ ChatGPT
- GitDiagram✓ ChatGPT
Claude Code はまだ Symbols につなげません
提供元はパソコン版 Claude アプリ用のインストールファイルしか用意していません
代わりにできること
A · Symbols につなげるアプリを使う
- キー不要、インストール不要 · パソコン版 Claude アプリ(Windows または Mac)のみ。Web やスマホでは使えません
Cursor はまだ Symbols につなげません
提供元はパソコン版 Claude アプリ用のインストールファイルしか用意していません
代わりにできること
A · Symbols につなげるアプリを使う
- キー不要、インストール不要 · パソコン版 Claude アプリ(Windows または Mac)のみ。Web やスマホでは使えません
VS Code はまだ Symbols につなげません
提供元はパソコン版 Claude アプリ用のインストールファイルしか用意していません
代わりにできること
A · Symbols につなげるアプリを使う
- キー不要、インストール不要 · パソコン版 Claude アプリ(Windows または Mac)のみ。Web やスマホでは使えません
ひと目でわかる
使えるアプリ
このサーバーのつなぎ方と、各アプリの公式ドキュメントに基づきます。2026年11月10日に確認。
パソコン上で動かせるアプリ
ClaudeGooseLM StudioMsty StudioCherry StudioVisual StudioWindsurf (Devin Desktop)ZedKiroClineContinueJetBrains AI AssistantCodex CLIGemini CLIOpenCodenodecodeWarpLibreChatRaycast
できること
パソコンで動くサーバーです。インストールすると、ツール一覧がAIアプリに表示されます。
基本チェックi
誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月13日にチェック
- ✓ 合格
作者とリポジトリが一致
レジストリ名は、リポジトリを所有するGitHubアカウント Jordan-Horner で確認済みです
- ✓ 合格
今もメンテナンスされている
コードの最終更新:3 か月前
- ✓ 合格
ライセンスがある
MITを使用
- – 対象外
エンドポイントが応答する
これはパソコンで動くため、インターネット上のエンドポイントはありません
- – 対象外
OAuthでサインイン
パソコンで動き、代わりにローカルの設定を使います
- … 未チェック
ツールの説明に隠れた指示がない
パソコンで動くサーバーです。ツール一覧を読み取れるのは、インターネット上のエンドポイントがある場合だけです
話し合い
質問、コツの共有、使えないことの報告ができます。「役に立った」の多い順です。
ユーザーレビュー
まだレビューはありません
開発者ツールのほかのサーバーとの比較i
- このカテゴリのほかの5825件のうち77%よりスターが多い
- このカテゴリのほかの5825件のうち5%より最近レジストリに公開
- 基本チェックの結果が、このカテゴリのほかの5825件のうち100%と同じかそれ以上
レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。
よくある質問
Symbolsは安全ですか?
当てはまる基本チェック3項目のうち3項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。
どんなキーやコードが必要ですか?
レジストリには必須のキーは載っていません。ただし、最初に使うときにサインインを求めるサーバーもあります。
パソコンで動きますか、それともクラウドですか?
あなたのパソコンで動きます。必要なときにAIアプリが起動し、データは作者のサーバーを通りません(サーバー自体がオンラインサービスを呼び出す場合を除きます)。
今もメンテナンスされていますか?
GitHubリポジトリの最終更新は3 か月前、最新バージョン(1.0.3)がレジストリに届いたのは8 か月前です。
どのアプリで使えますか?
Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。パソコンにMCPBも必要です。
同じカテゴリのほかの候補
同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。
カードの見方:↓ 週あたりのダウンロードi★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i
GitHub
Connect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language.
Serena MCP: the IDE for your agent
A powerful toolkit for coding, providing semantic retrieval and editing capabilities.
作者のREADME
READMEを開く
作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。
symbols
A fast, polyglot source code intelligence CLI. Extract symbols, parse imports, trace dependencies, and analyze impact — all from the command line.
No language server required. No build step for your projects. Just point it at your code.
Table of contents
- Why this exists
- How it saves context
- What it does
- Install
- Language support
- Usage
- Symbol extraction
- Import parsing
- Dependency queries
- Impact analysis
- Project graph summary
- JSON output
- Shorthand
- Symbol search
- MCP server
- How it works
- Project root detection
- Limitations
- License
Why this exists
symbols is for the moments when you need to understand a codebase quickly without opening 30 files first.
Common pain points it targets:
- You are about to change a file and need to know blast radius immediately.
- You are onboarding to an unfamiliar repo and need a map, not a scavenger hunt.
- You are reviewing a PR and want concrete dependency and ownership signals.
- You are using AI coding tools and need reliable, structured project context on demand.
Instead of manually reconstructing context from editor tabs, grep output, and memory, symbols gives you the structural view in one step.
How it saves context
symbols saves context in two practical ways:
- It externalizes code structure into fast, repeatable queries (
list,deps,dependents,impact,graph,search) so you do not have to rebuild mental maps every session. - It exposes the same model through MCP (
syms mcp) so agents and tools can fetch fresh project facts directly, rather than relying on stale chat history or guessed file relationships.
Net effect:
- less re-reading
- fewer "what will this break?" surprises
- faster onboarding and safer refactors
- more useful AI assistance because context is retrieved, not improvised
- lower cost from fewer exploratory engineering cycles and reduced AI token spend on repo re-discovery
What it does
syms list server.py # functions, classes, constants, variables
syms imports server.py # parsed import statements syms deps server.py # files this file imports from syms dependents server.py # files that import this file syms impact server.py # full impact analysis (direct + transitive) syms graph . # project-wide dependency summary syms search User # find symbols by name across a project syms mcp # run as MCP server for AI tools
Install
Option 1: Build from source
git clone https://github.com/Jordan-Horner/symbols.git
cd symbols go build -o syms . sudo mv syms /usr/local/bin/
Requirements: Go 1.26+
Option 2: Direct installation (Linux/macOS)
# Install directly to /usr/local/bin
curl -L https://github.com/Jordan-Horner/symbols/releases/latest/download/syms-$(uname -s)-$(uname -m) -o /usr/local/bin/syms chmod +x /usr/local/bin/syms
Option 3: Homebrew (macOS)
brew tap Jordan-Horner/tap
brew install syms
Verify installation
syms --version
Language support
Symbol extraction uses tree-sitter for full AST parsing (function signatures with parameters, classes, types, constants). Import parsing and dependency resolution use regex.
| Language | Symbols | Import parsing | Dependency resolution |
|---|---|---|---|
| Python | tree-sitter (functions, classes, constants, variables) | regex | Relative + absolute imports |
| TypeScript | tree-sitter | regex | tsconfig.json path aliases, relative paths, index.ts |
| JavaScript | tree-sitter | regex | Same as TypeScript (also reads jsconfig.json) |
| Svelte | tree-sitter (script block) | regex | Same as TypeScript |
| Go | tree-sitter | regex | go.mod module prefix, package directories |
| Java | tree-sitter | regex | Dot-to-slash, src/main/java prefix |
| Kotlin | tree-sitter | regex | Same as Java + .kt |
| Rust | tree-sitter | regex | crate/self/super, mod.rs |
| C# | tree-sitter | regex | Namespace-to-path, class name fallback |
| PHP | tree-sitter | regex | PSR-4 conventions, require/include |
| C/C++ | tree-sitter | — | — |
| Ruby | tree-sitter | — | — |
| Scala | tree-sitter | — | — |
| Bash | tree-sitter | — | — |
Usage
Symbol extraction
# Single file
syms list app.py
Multiple files
syms list src/main.go src/handlers.go
Recursive directory scan
syms list -r src/
JSON output (for piping to other tools)
syms list --json app.py
Pretty JSON output (human-readable)
syms list --json --pretty app.py
Optional: include precise symbol ranges
syms list --json --ranges app.py
Count symbols per file
syms list --count src/
Filter by symbol kind (repeatable or comma-separated)
syms list --filter class src/ syms list --filter class,function src/ syms list --filter class --filter function src/
Output:
### `app.py` — 245 lines
constant VERSION # line 1 constant API_URL # line 3 variable app # line 5 class Application # line 12 def init(self, config) # line 15 async def start(self) # line 34 def shutdown(self) # line 78
Import parsing
syms imports server.py
Output:
### `server.py`
from flask import Flask, jsonify # line 1 from .models import User, Post # line 2 import os # line 3
Dependency queries
# Direct dependencies
syms deps src/handlers.go
Transitive (everything it depends on, recursively)
syms deps -t src/handlers.go
Who imports this file?
syms dependents src/models.py
Transitive dependents
syms dependents -t src/models.py
Impact analysis
syms impact src/core/utils.py
Output:
### `src/core/utils.py` — impact analysis
Direct dependents: 8 Transitive dependents: 23
Direct: src/api/handlers.py src/core/auth.py src/core/db.py ...
Indirect (transitive): src/api/routes.py src/main.py tests/test_auth.py ...
Project graph summary
syms graph .
Output:
Project dependency graph
Files: 187 Import edges: 562 Unresolved imports: 43
Most depended-on files: src/utils.py (36 dependents) src/config.py (33 dependents) src/models.py (23 dependents)
Heaviest importers: src/app.py (28 imports) src/main.py (24 imports)
Circular dependencies (1): src/config.py <-> src/runner.py
JSON output
All commands support --json for machine-readable output:
syms impact --json src/utils.py | jq '.direct_dependents'
syms graph --json . | jq '.hot_spots[:5]'
Optional: pretty-print JSON for humans
syms graph --json --pretty .
Full edge map (file → its dependencies)
syms graph --json . | jq '.edges'
What does a specific file depend on?
syms graph --json . | jq '.edges["src/app.py"]'
Shorthand
The list subcommand is the default — you can omit it:
# These are equivalent:
syms list app.py syms app.py
Flags work too:
syms -r src/ --json
Symbol search
# Find symbols by name (fuzzy: exact > prefix > contains)
syms search User
JSON output
syms search --json handle
Search in a specific project
syms search --root /path/to/project Config
Search only specific symbol kinds
syms search --filter class User
Optional: include precise symbol ranges in search results
syms search --json --ranges User
Output:
Found 3 symbols matching "User":
class User models.py:1 class UserProfile models.py:5 function get_user(id) api/handlers.py:12
MCP server
Run syms as an MCP server for AI tool integration (e.g. Claude Code):
syms mcp
Exposes all functionality as MCP tools over stdio (JSON-RPC 2.0):
| Tool | Description |
|---|---|
syms_list | Extract symbols from files |
syms_imports | Parse import statements |
syms_deps | File dependencies |
syms_dependents | Reverse dependencies |
syms_impact | Impact analysis |
syms_search | Search symbols by name |
syms_graph | Project dependency graph |
syms_list and syms_search accept optional kinds: string[] arguments to filter symbol kinds. syms_list and syms_search also accept optional include_ranges: boolean for start/end line+column metadata. Tool results are returned in structuredContent (not JSON text blobs in content[].text).
Claude Code setup
After installing syms, configure it as an MCP server:
Project-level (recommended for teams):
Create .mcp.json in your project root:
{
"mcpServers": { "symbols": { "command": "syms", "args": ["mcp"] } } }
Commit this file so your team gets the symbols server automatically.
Global (all projects):
Create or edit ~/.mcp.json:
{
"mcpServers": { "symbols": { "command": "syms", "args": ["mcp"] } } }
After configuration:
- Restart Claude Code
- When prompted, approve the
symbolsMCP server - Claude Code will now have access to code intelligence tools in all your projects
How it works
Symbol extraction uses tree-sitter for full AST parsing. Each language has a compiled grammar (linked statically into the binary) that produces a syntax tree. The tool walks the tree to extract top-level declarations with names, kinds, line numbers, and function parameters. For Python, module-level assignments are also extracted as constants (UPPER_CASE) or variables.
Import parsing uses regex patterns tuned to each language's import syntax. This is fast and reliable for standard import forms without needing AST parsing.
Dependency resolution maps import specifiers to actual files on disk using language-specific conventions:
- Python: module dot-path to file path, relative import resolution
- Go:
go.modmodule name stripping, package-to-directory mapping - Java/Kotlin: dot-to-slash convention, standard source root prefixes (
src/main/java/) - Rust:
crate/self/superpath resolution,mod.rsconvention - C#: namespace-to-path with progressive prefix stripping
- PHP: PSR-4 backslash-to-slash mapping,
require/includepath resolution
Directory scanning uses early pruning of .git, node_modules, dist, build, vendor, target, and other common non-source directories.
Project root detection
For deps, dependents, impact, and graph, the tool auto-detects the project root by walking up the directory tree looking for .git, package.json, or pyproject.toml. Override with --root:
syms deps src/app.py --root /path/to/project
Limitations
- Convention-based resolution — dependency resolution uses file path conventions, not compiler/build system integration. TypeScript/JavaScript
pathsfromtsconfig.json/jsconfig.jsonare supported (includingextends), but webpack/vite aliases defined outside tsconfig are not. - File-level granularity — dependencies are traced at the file level (import graph), not at the function or symbol level. There is no call graph.
- C/C++ includes — `#include