MCP Tools Reference
This skill documents the MCP servers available for enhanced code intelligence, automation, and integrations.
CCLSP (Code Intelligence) - Refactoring Powerhouse
The cclsp MCP provides Language Server Protocol capabilities for intelligent code operations. Use these tools for any refactoring task - they're significantly more reliable than text-based find/replace.
Available Tools
| Tool | Purpose | When to Use |
|---|---|---|
mcp__cclsp__find_definition | Find where a symbol is defined | Understanding code, navigating to implementations |
mcp__cclsp__find_references | Find all usages of a symbol | Impact analysis before refactoring |
mcp__cclsp__rename_symbol | Rename across entire codebase | Refactoring variable/function/class names |
mcp__cclsp__rename_symbol_strict | Rename at specific position | When rename_symbol finds multiple candidates |
mcp__cclsp__get_diagnostics | Get TypeScript/lint errors | Checking code health before/after changes |
mcp__cclsp__get_hover | Get type info/docs at position | Understanding types, checking signatures |
mcp__cclsp__find_workspace_symbols | Search symbols by name | Finding classes/functions across codebase |
mcp__cclsp__find_implementation | Find interface implementations | Understanding polymorphism, finding concrete classes |
mcp__cclsp__prepare_call_hierarchy | Prepare for call analysis | Required before get_incoming_calls/get_outgoing_calls |
mcp__cclsp__get_incoming_calls | Find callers of a function | Impact analysis - who calls this? |
mcp__cclsp__get_outgoing_calls | Find callees of a function | Dependency analysis - what does this call? |
mcp__cclsp__restart_server | Restart LSP server | If results seem stale or incorrect |
Common Patterns
Safe Rename Refactoring
code
1. Find all references first (impact analysis):
mcp__cclsp__find_references
file_path: "backend/src/services/user.service.ts"
symbol_name: "getUserById"
2. Review the references to ensure you want to rename all of them
3. Perform the rename (dry_run first):
mcp__cclsp__rename_symbol
file_path: "backend/src/services/user.service.ts"
symbol_name: "getUserById"
new_name: "fetchUserById"
dry_run: true
4. If dry_run looks good, execute the rename:
mcp__cclsp__rename_symbol
file_path: "backend/src/services/user.service.ts"
symbol_name: "getUserById"
new_name: "fetchUserById"
dry_run: false
Understanding Call Flow
code
1. Prepare call hierarchy:
mcp__cclsp__prepare_call_hierarchy
file_path: "backend/src/services/enrichment.service.ts"
line: 45
character: 10
2. Find what calls this function:
mcp__cclsp__get_incoming_calls
file_path: "backend/src/services/enrichment.service.ts"
line: 45
character: 10
3. Find what this function calls:
mcp__cclsp__get_outgoing_calls
file_path: "backend/src/services/enrichment.service.ts"
line: 45
character: 10
Finding Interface Implementations
code
mcp__cclsp__find_implementation file_path: "backend/src/types/services.ts" line: 15 # Line where interface method is defined character: 5
Checking Code Health
code
mcp__cclsp__get_diagnostics file_path: "backend/src/services/new-feature.service.ts" # Returns TypeScript errors, warnings, and hints
Best Practices
- •Always use dry_run first for rename operations
- •Check references before renaming to understand impact
- •Use find_workspace_symbols when you don't know the file location
- •Restart server if results seem incorrect after file changes
- •Prefer cclsp over grep/sed for any symbol-aware operations
BetterStack (Production Logs)
See the betterstack-logs skill for comprehensive documentation.
Quick Reference
| Tool | Purpose |
|---|---|
mcp__betterstack__telemetry_create_cloud_connection_tool | Create connection credentials (1hr expiry) |
mcp__betterstack__telemetry_query | Execute ClickHouse SQL queries |
mcp__betterstack__telemetry_build_explore_query_tool | Generate query from natural language |
mcp__betterstack__telemetry_get_source_fields_tool | List available log fields |
mcp__betterstack__uptime_list_incidents_tool | List uptime incidents |
Quick Log Query
code
1. Create connection:
mcp__betterstack__telemetry_create_cloud_connection_tool
team_id: <your-team-id>
source_id: <your-source-id>
2. Query errors:
mcp__betterstack__telemetry_query
table: "<your-table>.render_production_5"
query: "SELECT dt, JSONExtract(raw, 'message', 'Nullable(String)') AS message
FROM remote(<your-table>_render_production_5_logs)
WHERE JSONExtract(raw, 'level', 'Nullable(String)') = 'error'
ORDER BY dt DESC LIMIT 20"
host: [from connection]
username: [from connection]
password: [from connection]
GitHub MCP
For pull request and issue management.
Available Tools
| Tool | Purpose |
|---|---|
mcp__github__create_pull_request | Create a new PR |
mcp__github__pull_request_read | Get PR details, diff, status, files, comments |
mcp__github__merge_pull_request | Merge a PR |
mcp__github__list_pull_requests | List PRs with filters |
mcp__github__search_pull_requests | Search PRs |
mcp__github__issue_read | Read issue details |
mcp__github__issue_write | Create/update issues |
mcp__github__search_code | Search code in repos |
mcp__github__get_file_contents | Get file from repo |
Common Patterns
Review a PR
code
mcp__github__pull_request_read owner: "<your-org>" repo: "<your-repo>" pullNumber: 123 method: "get_diff"
Get PR Review Comments
code
mcp__github__pull_request_read owner: "<your-org>" repo: "<your-repo>" pullNumber: 123 method: "get_review_comments"
Playwright MCP (Browser Automation)
For UI testing and browser automation.
Available Tools
| Tool | Purpose |
|---|---|
mcp__playwright__browser_navigate | Navigate to URL |
mcp__playwright__browser_snapshot | Get page accessibility snapshot |
mcp__playwright__browser_take_screenshot | Capture screenshot |
mcp__playwright__browser_click | Click element |
mcp__playwright__browser_fill_form | Fill form fields |
mcp__playwright__browser_type | Type text |
mcp__playwright__browser_run_code | Run custom Playwright code |
mcp__playwright__browser_console_messages | Get console output |
mcp__playwright__browser_network_requests | Monitor network |
Common Patterns
Navigate and Screenshot
code
1. Navigate:
mcp__playwright__browser_navigate
url: "http://localhost:3100/portal/dashboard"
2. Screenshot:
mcp__playwright__browser_take_screenshot
Fill and Submit Form
code
mcp__playwright__browser_fill_form
fields: [
{"selector": "#email", "value": "test@example.com"},
{"selector": "#password", "value": "password123"}
]
mcp__playwright__browser_click
selector: "button[type='submit']"
Email MCP
For email operations.
Available Tools
| Tool | Purpose |
|---|---|
mcp__email__list_available_accounts | List configured email accounts |
mcp__email__list_emails_metadata | List emails with filters |
mcp__email__get_emails_content | Get full email content |
mcp__email__send_email | Send an email |
mcp__email__delete_emails | Delete emails |
mcp__email__download_attachment | Download attachment |
When to Use Each MCP
| Task | MCP | Tool |
|---|---|---|
| Rename a function/variable | cclsp | rename_symbol |
| Find all usages of a symbol | cclsp | find_references |
| Understand call hierarchy | cclsp | get_incoming_calls, get_outgoing_calls |
| Check TypeScript errors | cclsp | get_diagnostics |
| Query production logs | betterstack | telemetry_query |
| Investigate production errors | betterstack | telemetry_query with error filter |
| Review a pull request | github | pull_request_read |
| Create a PR programmatically | github | create_pull_request |
| Test UI flows | playwright | Various browser_* tools |
| Check email delivery | list_emails_metadata |
Related Skills
- •
betterstack-logs- Comprehensive BetterStack log querying - •
render-infrastructure- Production SSH access