symbol-mcp
Provides code intelligence for JavaScript projects, including JSDoc-derived parameter types, signatures, defaults, docblocks, exports, and usages.
Provides code intelligence for PHP projects: native and PHPDoc/PHPStan/Psalm types, array shapes, callables, generics, defaults, namespace exports, template-level docblocks, and usages.
Provides code intelligence for TypeScript projects: symbol signatures, parameters and props with resolved types, optionality, defaults, docblocks, declaration locations, module exports, and usages.
This server does not currently have a deployable release on Glama. Follow the repository's setup instructions to install and configure it for your MCP client, including any required credentials and local dependencies.
symbol-mcp
Look up how to call things in a codebase the way an editor's hover and autocomplete do: the signature, every parameter or prop with its resolved type, whether it's optional, its default value and its docblock, plus where it's declared. It works as an MCP server for agents and as a CLI.
Languages: TypeScript and JavaScript (.ts, .tsx, .js, .jsx, .mjs,
.cjs, .mts, .cts) and PHP.
Install
npm install
npm run buildNode 20 or later is the only requirement. PHP doesn't need to be installed, because PHP files are parsed with a WebAssembly build of tree-sitter-php.
Related MCP server: Repo Lens MCP Server
Use it as an MCP server
{
"mcpServers": {
"symbol": {
"command": "node",
"args": ["/path/to/symbol-mcp/dist/cli.js", "mcp"],
"env": { "SYMBOL_MCP_ROOT": "/path/to/project" }
}
}
}You don't need to set SYMBOL_MCP_ROOT. The root comes from the first of
these that is set:
the
rootargument of a tool call--rootSYMBOL_MCP_ROOTthe first workspace root the MCP client reports (
roots/list), updated when the client says its roots changedthe nearest folder at or above the server's working directory that has
.git,package.json,composer.json,tsconfig.jsonorjsconfig.json
The status tool shows which one was used.
Tools:
Tool | What it returns |
| Signature, parameters or props (expanded into fields), defaults, docblock, location. Takes |
| Everything a module, package, file or PHP namespace provides, with short signatures. |
| Where the project calls or renders a symbol, with the whole call or JSX element and the function it's in. |
| Root, engines in use, indexed file counts, and what's missing. |
llms-full.txt is the manual for agents that call the tools: every argument,
name forms, lookup order, how to read the output, recipes and diagnosis.
Use it as a CLI
symbol-mcp describe Button
symbol-mcp describe "Cart::addItem" --depth 1
symbol-mcp describe Button --from @acme/ui
symbol-mcp exports @acme/ui
symbol-mcp exports "Vendor\Package"
symbol-mcp usages formatPrice --limit 5
symbol-mcp usages "Cart::render" --depth 3
symbol-mcp statusRun it as node dist/cli.js …, or run npm link once to put symbol-mcp on
your PATH. Add --json for the full structure. Run symbol-mcp --help for
every flag.
Configuration
Environment variable | CLI flag | Meaning |
|
| Project root. Default: the nearest project folder at or above the current directory (see above). |
|
| Extra folders or files to index, comma- or newline-separated. They can be outside the root or ignored by |
|
| Extra ignore patterns in |
A flag replaces its environment variable instead of adding to it. Paths in
--include are relative to the root.
Everything else comes from the project itself:
TypeScript and JavaScript use
tsconfig.jsonorjsconfig.jsonin the root (including project references). Without one, every source file the.gitignoreallows is loaded with default options (JavaScript allowed, JSX, bundler module resolution).PHP indexes the project's
.phpfiles (minus.gitignored ones and the vendor folder), plus every path in Composer's autoload (vendor/composer/installed.json). When a name isn't found there, the vendor folder is searched by name, which finds packages Composer doesn't autoload, such as stub packages.
How it fills in what's missing
Missing | What happens |
TypeScript in the project | The bundled TypeScript 5.9 is used. |
A project TypeScript without the classic compiler API (TypeScript 7's native port) | The bundled TypeScript is used. |
| Default options, reported by |
| Project declarations still resolve. Imports from packages are listed as unresolved, and the answer says to install dependencies. |
| Project PHP still resolves. Types imported from Composer packages are named but not expanded, and the answer says to run |
PHP on the machine | Nothing; PHP isn't used. |
Docblocks and defaults in a package's | Read from the package's original source: the declaration map, a shipped |
License
This server cannot be deployed
Maintenance
Related MCP Connectors
Code intelligence for coding agents: semantic, AST, graph, and full-text search. 279+ languages.
Codebase intelligence for AI agents — dead code, blast radius, ownership.
Coding agents in multi-service codebases routinely rebuild existing helpers, trust stale type definitions, and modify API contracts without knowing who consumes them. Carrick solves this by indexing your entire TypeScript ecosystem across service and repository boundaries. By integrating deeply with the TypeScript compiler, Carrick traces every route, type, and cross-service call while recording function behaviour so agents search by intent rather than name. Delivered via MCP for AI agents and LSP for IDEs, Carrick ensures models see existing endpoints and utilities before generating new code. The scanner is source-available and runs from your CLI or CI pipeline.
Ask a codebase what calls what: search, blast radius, paths between symbols, and diffs.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables querying and analyzing code relationships by building a lightweight graph of TypeScript and Python symbols. Supports symbol lookup, reference tracking, impact analysis from diffs, and code snippet retrieval through natural language.MIT
- AlicenseAqualityCmaintenanceCross-repository code intelligence server that enables AST-based search for functions, classes, types, and API routes across local JavaScript/TypeScript and PHP repositories.519 npmAGPL 3.0
- AlicenseNot gradedqualityDmaintenanceEnables LLM agents to efficiently understand and navigate a codebase by providing semantic search over symbols and a reference graph, replacing expensive grep/glob calls with structured tools like definition lookup, caller/callee queries, and change-impact analysis.3MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to retrieve precise symbol definitions and usages from codebases, eliminating the need to fetch entire files.8 npm2ISC