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: code-analyze-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
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- 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