tsx-query
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@tsx-queryFind Button components with inline onClick handlers"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
tsx-query
Semantic React/TSX analysis MCP server for AI coding assistants.
Save 70-90% tokens compared to grep + file reads.
Why tsx-query?
LLMs waste tokens on grep + file reads. tsx-query uses semantic AST analysis to return precisely what you need.
Query | grep + read | tsx-query | Savings |
Find Button usages | ~15,000 tokens | ~800 tokens | 95% |
Trace prop flow (5 levels) | ~75,000 tokens | ~3,000 tokens | 96% |
Find all setState calls | ~30,000 tokens | ~1,500 tokens | 95% |
Analyze re-render triggers | ~40,000 tokens | ~2,000 tokens | 95% |
Related MCP server: Component Library MCP
Installation
npm install -g @paramhq/tsx-queryQuick Start
For Claude Code
claude mcp add tsx-query -- npx -y @paramhq/tsx-queryOr manually add to your MCP config (~/.claude/mcp.json or project .mcp.json):
{
"mcpServers": {
"tsx-query": {
"command": "npx",
"args": ["-y", "@paramhq/tsx-query"]
}
}
}For Other MCP Clients
{
"command": "npx",
"args": ["-y", "@paramhq/tsx-query"]
}From Source
git clone https://github.com/paramhq/tsx-query.git
cd tsx-query
npm install
npm run build
npm run mcpHigh-Value Tools
1. find_component_usages
Find all JSX usages of a component with powerful filtering.
{
"projectPath": "/path/to/project",
"componentName": "Button",
"withProp": "onClick",
"hasInlineHandler": true
}Filters:
withProp/withoutProp- Filter by prop existencewithPropValue- Filter by prop value (exact or regex)hasInlineHandler- Find inline arrow handlershasSpreadProps- Find spread props usageonlyConditional- Only conditional renders
Returns: File locations, props with values, parent component, code snippets.
2. trace_prop_flow
Trace a prop through the component hierarchy. Replaces reading 5-10 files manually.
{
"projectPath": "/path/to/project",
"propName": "userId",
"startFile": "src/components/UserDetails.tsx",
"direction": "up"
}Returns: Complete prop path through components with transformations (renamed, destructured, spread).
3. trace_state_updates
Find all locations that update a state variable. Understand state flow without reading handlers.
{
"projectPath": "/path/to/project",
"filePath": "src/components/UserForm.tsx",
"stateName": "formData"
}Returns: All setState calls with context (handler, useEffect, inline), trigger events, async/conditional flags.
4. find_render_triggers
Analyze what causes a component to re-render with optimization suggestions.
{
"projectPath": "/path/to/project",
"filePath": "src/components/UserProfile.tsx",
"componentName": "UserProfile"
}Returns: Props, state, context, hooks that trigger renders + memoization status + suggestions.
5. analyze_imports
Analyze import/export relationships with cached import graph.
{
"projectPath": "/path/to/project",
"filePath": "src/components/Button/index.ts",
"direction": "importedBy"
}Returns: What imports this file, unused exports, circular dependencies.
Additional Tools
Tool | Purpose |
| Find all usages of a hook across codebase |
| Find missing/unnecessary hook dependencies |
| Analyze single file structure |
| List all JSX in a file |
| Clear project cache after external changes |
Roadmap
trace_event_handler- Trace callback chains from event to side effectstrace_context_usage- Map Context providers to consumers
Why Use Over Grep?
Grep Limitation | tsx-query Solution |
Finds "Button" in comments/strings | Only finds JSX |
Can't filter by prop values |
|
Can't detect aliased imports | Handles |
Can't trace prop flow | Full cross-file prop tracing |
Reads entire files | Returns only relevant data |
Built With
ts-morph - TypeScript AST manipulation
Model Context Protocol SDK - MCP server implementation
Zod - Schema validation
Author
Sukhdev - @paramhq
Contributing
See CONTRIBUTING.md for guidelines.
License
MIT - see LICENSE
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseNot gradedqualityAmaintenanceStandalone MCP server for code structure analysis using tree-sitter. Directory trees, symbol definitions, and call graphs without reading raw source files. Supports Rust, Python, Go, Java, TypeScript, Fortran, JavaScript, C/C++, and C#. Benchmarked up to 68% fewer tokens vs native tools.5Apache 2.0
- AlicenseBqualityDmaintenanceAn MCP server that scans React and Vue projects, extracts component metadata (props, slots, events, imports, usage), and exposes it to AI coding agents via structured tools.71MIT
- AlicenseNot gradedqualityCmaintenanceToken-efficient MCP server for multi-language project analysis (Java, TypeScript, JavaScript, Markdown, Python) with plugins, semantic search, and static analysis.MIT
- AlicenseNot gradedqualityCmaintenanceUniversal MCP server that analyzes any codebase and provides structured context to AI assistants. Dynamic, accurate, and token-efficient.19MIT
Related MCP Connectors
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
Code intelligence for coding agents: semantic, AST, graph, and full-text search. 279+ languages.
An MCP server that gives your AI access to the source code and docs of all public github repos
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/paramhq/tsx-query'
If you have feedback or need assistance with the MCP directory API, please join our Discord server