The MCP server has no metrics
Los mantenedores suelen responder en 1 día
@rupesh-kumar-sah ya está trabajando en esto.
Desde el 17/10/2026.
Evaluación
Este issue todavía no se ha evaluado.
Descripción
Background
src/metrics.ts knows nothing about MCP. There is no count of tool calls, no
duration, no error breakdown — so the agent surface is entirely invisible on the
dashboard that covers every other part of the service.
Once L213 and L214 give agents something worth calling, "which tools are
actually used" becomes the question that decides what to build next, and there
will be no data to answer it.
What to build
- A counter of tool calls by tool name and outcome. Tool names are a fixed,
server-defined set, so this label is safely bounded — unlike the GraphQL
operation names in #374. - A histogram of tool call duration by tool.
- A counter of errors by the
MCP_ERROR_CODESvalue, which is already a closed
set and is exactly the right label domain. - Register on the existing registry so everything appears at
/metrics.
Acceptance criteria
- Tool calls are counted by name and outcome
- Duration is recorded per tool
- Errors are counted by error code
- All labels come from closed sets
- Metrics appear on the existing
/metricsendpoint
Drips Wave · Complexity: Easy · 100 points
Repo: Divinity-Labs/Lens. The MCP server is src/mcp/server.ts
(BazaarMcpServer) with error codes in src/mcp/codes.ts. It is started by
npm run mcp:server → examples/mcp-server/run.ts, and there is an agent
example at examples/mcp-server/agent.ts. Tests are tests/mcp.test.ts.
Run the tests: npm test. The tests are vitest, not jest. A single file
is npx vitest run tests/mcp.test.ts.
Load test (prices) is already failing on main. Not your PR.
This surface signs with a real mainnet key. examples/mcp-server/run.ts
requires MCP_AGENT_SECRET_KEY_MAINNET and builds a signer for
stellar:pubnet. Anything you change here can move real money, so prefer
failing closed, and never log, echo or test with a real secret key.
Never elide an address, a contract id or a key in code, comments or
fixtures. A previous batch shortened a contract id and five contributors
invented plausible-looking ids to fill the gap. Write it in full or not at all.
An agent is the least able caller to notice a wrong answer. It will reason
over whatever it is handed, confidently. Prefer a structured error over a
best-effort result.
Required: Before submitting, join the contributor Telegram so your work can be tracked and counted toward the Stellar Wave: https://t.me/+fxHXq8f1SwlkZDBk
- Lenguaje dominante
- TypeScript
- Estrellas
- 4
- Forks
- 71
- Merge medio
- 1 d 9 h
- PR fusionados (30 d)
- 34
Preparar el entorno
- Incluye un Dockerfile o un archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de Divinity-Labs/Lens
-
Webhook retries have no jitter, so failures synchronisePosiblemente ocupada @Richard-tobi la tomó hace 1 día. Abiertoarea:reliability difficulty:easy help wanted points:100 Stellar Wave
Dificultad 2/5 1-3 horas Aptitud para principiantes 80/100
Divinity-Labs/Lens#341 · 2 comentarios · 1 asignado ·
Los mantenedores suelen responder en 1 día
-
Tool descriptions do not tell an agent when to stopPosiblemente ocupada @rupesh-kumar-sah la tomó hoy. Abiertoarea:mcp difficulty:easy help wanted points:100 Stellar Wave
Divinity-Labs/Lens#424 · 4 comentarios · 1 asignado ·
Los mantenedores suelen responder en 1 día
-
No test drives a real 402 payment loopPosiblemente ocupada @Ugasutun la tomó hoy. Abiertoarea:testing difficulty:advanced help wanted points:200 Stellar Wave
Divinity-Labs/Lens#423 · 6 comentarios · 1 asignado ·
Los mantenedores suelen responder en 1 día
-
The agent example is undocumentedPosiblemente ocupada @GazzyLee la tomó hoy. Abiertoarea:docs difficulty:easy help wanted points:100 Stellar Wave
Divinity-Labs/Lens#422 · 3 comentarios · 1 asignado ·
Los mantenedores suelen responder en 1 día
-
Only the error paths of one tool are testedPosiblemente ocupada @AGWAM001 la tomó hoy. Abiertoarea:testing difficulty:intermediate help wanted points:150 Stellar Wave
Divinity-Labs/Lens#421 · 8 comentarios · 1 asignado ·
Los mantenedores suelen responder en 1 día
Todos los issues de Divinity-Labs/Lens
Issues similares
-
community first-timers-only good first issue hacktoberfest help wanted low hanging fruit up-for-grabs
Dificultad 1/5 Menos de una hora Aptitud para principiantes 90/100
lingdojo/kana-dojo#32663 · 1 comentario · 5 reacciones ·
Los mantenedores suelen responder en 1 día
-
Admin: Title Separator field can't be cleared (input falls back to "|")Posiblemente ocupada @emdashbot la tomó hoy. Abiertobot:bug bot:in-review
Dificultad 2/5 1-3 horas Aptitud para principiantes 80/100
emdash-cms/emdash#4236 · 3 comentarios ·
Los mantenedores suelen responder en 1 día
-
PHP workflow streaming requests buffer the full SSE responsePosiblemente ocupada @Winoren la tomó hoy. Abiertoreview: medium
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
langgenius/dify#44270 · 1 comentario · 1 reacción ·
Los mantenedores suelen responder en 1 día
-
area:holodeck review-finding
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
hyperdrive-technology/holodeck#142 ·
Los mantenedores suelen responder en 1 día
-
session-worker-compile.yml uses a floating oven-sh/setup-bun@v2 tag instead of the pinned SHAAbierto
Dificultad 1/5 Menos de una hora Aptitud para principiantes 90/100
code-yeongyu/senpi#3573 ·
Los mantenedores suelen responder en 1 día