spx-mcp-server
SPX MCP Server
php-spx 보고서를 위한 웹 전용 MCP 서버입니다. 내장된 SPX 웹 엔드포인트를 호출하고 전체 보고서를 파싱하여 원시 이벤트 스트림 대신 LLM 크기의 JSON 요약을 반환합니다.
전제 조건
Node.js 20 이상
HTTP 프로파일링을 위해
spxPHP 확장이 활성화된 애플리케이션SPX HTTP 접근이 구성되어 있어야 합니다. 예:
spx.http_enabled=1
spx.http_key="dev"
spx.http_ip_whitelist="127.0.0.1"Related MCP server: otel-mcp
빌드
npm install
npm run build빌드된 stdio 진입점은 다음과 같습니다:
/path/to/spx-mcp-server/dist/index.js에이전트 구성에서 다음 환경 변수를 설정하거나 도구 호출 시 전달하세요:
SPX_BASE_URL=http://localhost
SPX_KEY=devCodex CLI에 설치
~/.codex/config.toml을 편집하고 다음을 추가하세요:
[mcp_servers.spx]
command = "node"
args = ["/path/to/spx-mcp-server/dist/index.js"]
env = { SPX_BASE_URL = "http://localhost", SPX_KEY = "dev" }파일을 편집한 후 Codex CLI를 다시 시작하세요.
Claude Code에 설치
로컬 프로젝트 구성:
claude mcp add --transport stdio --scope project \
--env SPX_BASE_URL=http://localhost \
--env SPX_KEY=dev \
spx -- node /path/to/spx-mcp-server/dist/index.js사용자 전체 구성:
claude mcp add --transport stdio --scope user \
--env SPX_BASE_URL=http://localhost \
--env SPX_KEY=dev \
spx -- node /path/to/spx-mcp-server/dist/index.js확인:
claude mcp list
claude mcp get spx동등한 .mcp.json 프로젝트 구성:
{
"mcpServers": {
"spx": {
"type": "stdio",
"command": "node",
"args": ["/path/to/spx-mcp-server/dist/index.js"],
"env": {
"SPX_BASE_URL": "http://localhost",
"SPX_KEY": "dev"
}
}
}
}Cline에 설치
Cline은 MCP를 지원하는 인기 있는 오픈소스 VS Code 에이전트입니다.
Cline CLI의 경우 다음을 실행하세요:
cline mcp그런 다음 다음으로 로컬 stdio 서버를 추가하세요:
name: spx
command: node
args: /path/to/spx-mcp-server/dist/index.js
env:
SPX_BASE_URL=http://localhost
SPX_KEY=devVS Code 확장의 경우 Cline MCP 서버 설정을 열고 다음 JSON을 추가하세요:
{
"mcpServers": {
"spx": {
"command": "node",
"args": ["/path/to/spx-mcp-server/dist/index.js"],
"env": {
"SPX_BASE_URL": "http://localhost",
"SPX_KEY": "dev"
},
"disabled": false,
"autoApprove": []
}
}
}OpenClaw에 설치
OpenClaw는 mcp.servers 아래에서 아웃바운드 MCP 서버를 관리할 수 있는 오픈소스 개인 에이전트/게이트웨이입니다.
~/.openclaw/openclaw.json 또는 OPENCLAW_CONFIG_PATH가 가리키는 파일을 편집하세요:
{
mcp: {
servers: {
spx: {
command: "node",
args: ["/path/to/spx-mcp-server/dist/index.js"],
env: {
SPX_BASE_URL: "http://localhost",
SPX_KEY: "dev",
},
},
},
},
}저장된 구성을 확인하세요:
openclaw mcp status --verbose
openclaw mcp probe spx기본 워크플로우
프로파일링하려는 웹 URL에 대해
profile_url을 호출합니다.list_reports를 호출합니다.가장 최근의 일치하는 보고서를 선택합니다.
analyze_report또는get_hot_paths를 호출합니다.
도구
profile_url: SPX 쿠키를 활성화하여 하나의 HTTP 요청을 보냅니다.list_reports:?SPX_UI_URI=/data/reports/metadata를 읽습니다.get_report_metadata: 하나의 보고서 메타데이터 JSON을 읽습니다.analyze_report:?SPX_UI_URI=/data/reports/get/<key>를 다운로드하고 파싱합니다.get_hot_paths: 가장 비용이 많이 드는 호출 경로를 반환합니다.get_function_profile: 하나의 함수의 집계 및 호출자/피호출자를 반환합니다.get_raw_events: 원시 이벤트의 페이지별 디버그 슬라이스를 반환합니다.
분석기는 기본적으로 출력을 제한합니다. 대규모 SPX 보고서에는 수백만 개의 이벤트가 포함될 수 있으므로 전체 원시 보고서 출력은 의도적으로 일반 도구 결과로 노출되지 않습니다. get_raw_events는 호출당 1000개의 이벤트로 제한되며 파서 또는 분석기 동작을 디버깅하기 위한 것입니다.
참고 자료
Claude Code MCP 구성: https://code.claude.com/docs/en/mcp
Cline MCP 구성: https://github.com/cline/cline/blob/main/docs/mcp/mcp-overview.mdx
OpenClaw MCP 구성: https://docs.openclaw.ai/gateway/configuration-reference
Available Tools
7 toolsanalyze_reportC
Download, decompress if needed, parse, and aggregate one SPX full report.
| Name | Required | Description | Default |
|---|---|---|---|
| key | Yes | ||
| limit | No | ||
| metric | No | Metric key to sort by, usually wt or zm. | |
| spxKey | No | SPX HTTP key. Defaults to SPX_KEY. | |
| baseUrl | No | SPX-enabled application base URL. Defaults to SPX_BASE_URL. | |
| timeoutMs | No | ||
| maxPathDepth | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description mentions multi-step processing (download, decompress, parse, aggregate), hinting at resource usage and potential network activity. However, it provides no details about side effects, error cases, return format, or performance implications, and there are no annotations to compensate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no wasted words. However, it lacks structure such as bullet points or sections, and could benefit from more detail without becoming overly verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (7 parameters, multi-step processing, no output schema), the description is severely incomplete. It does not explain what 'aggregate' means, what the return value is, how to configure the download/parsing, or any error scenarios. The agent would struggle to use this tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description does not explain any of the seven parameters, even though schema description coverage is only 43%. Parameters like limit, metric, timeoutMs, and maxPathDepth have no explanations in either the description or the schema, leaving the agent unable to understand their purpose.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the specific actions (download, decompress, parse, aggregate) on 'one SPX full report', which clearly indicates the tool's purpose. However, it does not explicitly differentiate from siblings like get_hot_paths or get_function_profile, which could be used for more granular analysis.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives, prerequisites, or contexts where it would be inappropriate. The description only states what it does, not when to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_function_profileC
Return aggregate, callers, callees, and hot paths for a function name substring.
| Name | Required | Description | Default |
|---|---|---|---|
| key | Yes | ||
| limit | No | ||
| metric | No | ||
| spxKey | No | SPX HTTP key. Defaults to SPX_KEY. | |
| baseUrl | No | SPX-enabled application base URL. Defaults to SPX_BASE_URL. | |
| timeoutMs | No | ||
| maxPathDepth | No | ||
| functionQuery | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It mentions the tool is 'for a function name substring' (implying partial matching) and returns multiple profile components, but does not state whether it is a read-only operation, whether data could be stale, what format the response takes, or any side effects. The lack of detail on invocation behavior (e.g., if it modifies state, requires authentication) is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence—front-loaded with the main purpose (Return aggregate, callers, callees, and hot paths) and ending with the search qualifier ('for a function name substring'). No wasted words, but slightly more detail on how the substring matching behaves could improve it without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (8 parameters, 2 required, no output schema, no annotations), the description is incomplete. It does not explain what 'key' or 'metric' are, how the substring search works (e.g., case sensitivity, wildcards), what the return format looks like, or any usage prerequisites. The description is too brief for the tool's richness and lacks critical context for correct agent invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is low (25%), meaning the description must compensate for the 6 parameters without inline schema documentation. The description does not add meaning for any of the 8 parameters—it lists output components (aggregate, callers, callees, hot paths) but these are not parameters. The description adds no extra value over the schema for key, limit, metric, spxKey, baseUrl, timeoutMs, maxPathDepth, or functionQuery. Since coverage is low, a score of 3 is generous; the description fails to explain what key or metric mean or how functionQuery pattern matching works.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb phrase 'Return aggregate, callers, callees, and hot paths' and clearly identifies the resource as 'a function name substring'. It distinguishes the tool from siblings like get_hot_paths by mentioning multiple profile components (aggregate, callers, callees) rather than just hot paths.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives such as get_hot_paths, profile_url, or analyze_report. There is no mention of prerequisites (e.g., an existing SPX profile), context for using the substring-based functionQuery, or when one might prefer a sibling tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_hot_pathsD
Return only the hottest call paths for one SPX report.
| Name | Required | Description | Default |
|---|---|---|---|
| key | Yes | ||
| limit | No | ||
| metric | No | ||
| spxKey | No | SPX HTTP key. Defaults to SPX_KEY. | |
| baseUrl | No | SPX-enabled application base URL. Defaults to SPX_BASE_URL. | |
| timeoutMs | No | ||
| maxPathDepth | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, and the description fails to disclose any behavioral traits such as read-only nature, authentication requirements, rate limits, or what 'hottest' means. The agent receives no information about side effects, permissions, or operational constraints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short (9 words) but underspecified rather than concise. Every sentence should earn its place; this single sentence omits critical information and does not justify its brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 7 parameters, no output schema, and no annotations, the description is completely inadequate. It does not explain what the tool returns, how to interpret the results, or how parameters interact. The tool's complexity demands far more detail.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 29% (2 of 7 parameters have descriptions). The one-sentence description adds no meaning to any parameter—it does not explain 'key', 'limit', 'metric', 'timeoutMs', or 'maxPathDepth'. The description fails to compensate for the low schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Return only the hottest call paths for one SPX report,' which indicates a specific verb, resource, and scope. However, 'hottest' is ambiguous and not defined, nor does it differentiate from sibling tools like analyze_report or get_function_profile. The purpose is somewhat clear but lacks precision.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions 'for one SPX report' implying a prerequisite, but provides no guidance on when to use this tool versus alternatives (e.g., get_raw_events, get_function_profile). No exclusions, prerequisites, or context for selection are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_raw_eventsA
Return a paginated debug slice of raw SPX events. This never returns the full report.
| Name | Required | Description | Default |
|---|---|---|---|
| key | Yes | ||
| limit | No | Number of events to return. Defaults to 100, maximum 1000. | |
| offset | No | Zero-based event offset. Defaults to 0. | |
| spxKey | No | SPX HTTP key. Defaults to SPX_KEY. | |
| baseUrl | No | SPX-enabled application base URL. Defaults to SPX_BASE_URL. | |
| timeoutMs | No | ||
| includeFunctions | No | Include function names and an index-to-name map. Defaults to false. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of disclosing behavior. It mentions pagination and the non-full-report nature, which is useful, but it does not explicitly state whether this is a read-only operation, nor does it mention authentication needs, side effects, or error behavior. This leaves significant gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long, front-loaded with the primary action, and contains zero wasted words. It efficiently conveys the tool's core function and a key limitation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 7 parameters, no output schema, and no annotations, the description is too thin. It does not explain what 'raw SPX events' are, what 'key' refers to, how pagination works in practice, or what the return format looks like. Sibling tools are not mentioned as alternatives, and there is no guidance on when this debug view is appropriate versus a full report. This is inadequate for the tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 71% (5 of 7 parameters documented), so the baseline is 3. The description adds no parameter-specific details; it only hints at pagination via the word 'paginated'. It does not compensate for undocumented 'key' and 'timeoutMs' parameters, but the existing schema descriptions handle most of the burden.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Return a paginated debug slice of raw SPX events' uses a specific verb and resource, clearly distinguishing this tool from siblings that deal with reports, profiles, and hot paths. The added caveat 'This never returns the full report' further clarifies its scope and purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context that this is a debug-oriented tool returning partial raw events, and explicitly notes it never returns the full report. However, it does not name alternatives or state when-not-to-use this tool, so it stops short of being fully explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_report_metadataC
Get metadata JSON for one SPX report key.
| Name | Required | Description | Default |
|---|---|---|---|
| key | Yes | ||
| spxKey | No | SPX HTTP key. Defaults to SPX_KEY. | |
| baseUrl | No | SPX-enabled application base URL. Defaults to SPX_BASE_URL. | |
| timeoutMs | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries full burden. It only states the action without disclosing behavioral traits: no mention of whether the operation is read-only, what happens on error (e.g., missing key), rate limits, or authentication requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, front-loaded with the verb and resource. It wastes no words. However, it might be slightly under-specified given the existence of four parameters; additional concise details could improve it without harming conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description should hint at what the metadata JSON contains, or at least state the return type. It does not. Additionally, with four parameters (one required), the lack of any parameter explanation makes the tool description incomplete for an agent to use confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 50% (two of four parameters have descriptions in the schema), but the tool description adds no parameter information. The key parameter is referenced implicitly ('one SPX report key') but not explained (e.g., format, where to obtain it). The description does not compensate for the missing schema descriptions for 'key' and 'timeoutMs'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and the resource 'metadata JSON for one SPX report key', making the core function explicit. However, it does not distinguish itself from siblings like 'list_reports' or 'analyze_report', which might also return metadata.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. The description lacks context about prerequisites (e.g., needing a valid report key), when to prefer it over 'list_reports' (which might list keys), or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_reportsB
List SPX report metadata from the embedded web UI data endpoint.
| Name | Required | Description | Default |
|---|---|---|---|
| spxKey | No | SPX HTTP key. Defaults to SPX_KEY. | |
| baseUrl | No | SPX-enabled application base URL. Defaults to SPX_BASE_URL. | |
| timeoutMs | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It only states the basic operation (listing metadata) but does not mention whether this is a read-only operation, if authentication via spxKey is required, what happens with missing keys, rate limits, pagination, or any side effects. The implied behavior is minimal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single 11-word sentence that is front-loaded with the verb 'List' and the main resource. Every word is necessary and there is no redundancy or wasted text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has 3 optional parameters and no output schema. The description fails to mention whether the list is paginated, filtered, or ordered; what the metadata structure looks like; or any prerequisites such as needing an active SPX key. Agents are left to guess the return format and behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides descriptions for spxKey and baseUrl (67% coverage). The description adds context that the endpoint is 'embedded web UI data', which helps clarify the purpose of baseUrl and spxKey. However, it does not elaborate on timeoutMs or provide parameter-specific guidance beyond what the schema already offers. Baseline 3 is appropriate given the coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'List' and identifies the resource 'SPX report metadata' and the source 'embedded web UI data endpoint'. This clearly distinguishes it from siblings like 'get_report_metadata' (which implies retrieving a single report's metadata) and 'analyze_report' (which implies deeper analysis).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives such as get_report_metadata for a single report or analyze_report for analysis. It does not state prerequisites, limitations, or scenarios where this tool is appropriate or inappropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
profile_urlB
Profile one web request by sending SPX cookies to the target URL.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | ||
| depth | No | ||
| method | No | ||
| spxKey | No | SPX HTTP key. Defaults to SPX_KEY. | |
| baseUrl | No | SPX-enabled application base URL. Defaults to SPX_BASE_URL. | |
| metrics | No | ||
| builtins | No | ||
| timeoutMs | No | ||
| samplingPeriod | No | ||
| allowCrossOrigin | No | Allow sending the SPX key cookie to a URL with a different origin than baseUrl/SPX_BASE_URL. Defaults to false. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must disclose behavioral traits. It mentions sending SPX cookies and profiling a request, hinting at side effects (cookie injection). However, it does not clarify whether the request is actually executed, what happens on failure, or if the method affects behavior. The 'profile' verb is somewhat ambiguous—does it merely observe or also modify the request? Adequate but could be more transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no wasted words. It is front-loaded with the main action. However, it could be slightly expanded to cover the 'how' without losing conciseness—currently it is lean but somewhat incomplete.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (10 parameters, no output schema, no annotations, low schema coverage), the description is insufficient. It does not explain what a 'profile' is, what the output looks like, or how parameters like depth and metrics affect behavior. The agent needs more context to use this tool effectively, especially since there is no output schema to compensate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is low (30%), so the description should compensate. The description adds no parameter-specific details beyond what the schema provides. The schema itself has descriptions for only 3 of 10 parameters (spxKey, baseUrl, allowCrossOrigin). The description does not explain the meaning of depth, metrics, builtins, or samplingPeriod, leaving the agent with incomplete understanding. Baseline 3 for low coverage with no added value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Profile one web request by sending SPX cookies to the target URL,' which clearly identifies the verb (profile), resource (web request), and mechanism (SPX cookies). It is distinct from sibling tools like list_reports or analyze_report, but could be more explicit about the output being a profile rather than a report.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. It does not mention prerequisites (e.g., must have a valid SPX session) or when not to use it (e.g., for simple requests without profiling). The siblings are all report/analysis tools, so the core use case is implied but not explained.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
7 tool updates
v1.2.0- First observed
analyze_report - First observed
get_function_profile - First observed
get_hot_paths - First observed
get_raw_events - First observed
get_report_metadata - First observed
list_reports - First observed
profile_url
TDQS
Scored across 7 tools
Each tool has a clearly distinct purpose: profile_url initiates profiling, list_reports lists metadata, get_report_metadata retrieves specific metadata, analyze_report aggregates full data, get_hot_paths extracts hot paths, get_function_profile provides function-level analysis, and get_raw_events returns raw events. There is no ambiguity between them.
All tool names follow a consistent verb_noun pattern in lowercase snake_case (e.g., profile_url, list_reports, get_hot_paths). The verbs are clear and the naming is predictable throughout.
With 7 tools, the server is well-scoped for a profiling/analysis domain. Each tool covers a necessary operation without bloat, and the count is ideal for an agent to manage.
The tool set covers the core workflow: starting a profile, listing reports, retrieving metadata, performing full analysis, and extracting specific insights. Minor gaps exist (e.g., no explicit tool to stop a profile or delete reports), but these are likely outside the server's intended scope, and the remaining tools form a cohesive surface.
Maintenance
Related MCP Connectors
MCP server for web extraction and rendering via AceDataCloud WebExtrator
Remote MCP server for supportsheep: run AI interviews and manage support content for your blog.
Remote MCP for GenAI span mapping, provider normalization, dashboard schemas, and receipts.
One MCP server for 180+ live web-data APIs returning clean JSON from sites that block scrapers.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceAn MCP server that converts Windows WPR .etl performance traces into structured JSON summaries and flamegraph-ready data for LLM analysis. It bridges Windows Performance Analyzer automation with LLM reasoning capabilities for performance troubleshooting.1MIT
- AlicenseAqualityDmaintenanceMCP server that gives AI agents access to your application's OpenTelemetry traces for querying, analysis, and debugging.510 npm2MIT
- AlicenseNot gradedqualityDmaintenanceMCP server that exposes Symfony profiler runtime data (requests, queries, logs) to AI agents like Claude Code for debugging and optimization.MIT
- AlicenseNot gradedqualityDmaintenanceRemote MCP server that normalizes OpenTelemetry GenAI spans by mapping fields, provider attributes, and missing attributes, and exports dashboard schemas.MIT