Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

step mcp add accepts server names that produce invalid MCP tool names

Abierto Apto para principiantes
#140 4 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
2/5
Tiempo estimado
1-3 horas
Aptitud para principiantes
75/100
Tipo de issue
Error
Claridad
Bien especificado
Estado de actividad
Activo
Stack tecnológico
nodejs, typescript

Línea de trabajo

El problema está en apps/cli/src/main.ts, donde el comando step mcp add acepta nombres de servidor sin validación. Compara con sanitizeServerName en packages/coding-agent/src/step/mcp-import.ts. La solución debe validar o sanitizar el nombre del servidor para que coincida con el conjunto de caracteres del nombre de la herramienta ([a-zA-Z0-9_-]). Prueba agregando un servidor con un nombre no válido y verifica que sea rechazado o sanitizado, y que los nombres de herramientas resultantes (por ejemplo, my.server__hello) sean válidos.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

untriaged
What happened?

step mcp add accepts any string as the server name — no charset or length validation. That name is then used verbatim as the model-facing tool-name prefix: packages/coding-agent/src/step/mcp.ts:461 builds

const name = `${server.name}__${sanitizeName(remote.name)}`;

The remote tool name is sanitized; the server name is not, and the provider layer sends it through unchanged. A server added as my.server therefore registers tools like my.server__hello, which violates the tool-name charset both wire protocols require (OpenAI ^[a-zA-Z0-9_-]{1,64}$, Anthropic ^[a-zA-Z0-9_-]{1,128}$). Once such a server connects, every request fails with an API error that doesn't point at the config entry.

The MCP import path already enforces exactly this invariant — sanitizeServerName in packages/coding-agent/src/step/mcp-import.ts, with a comment saying the server name is "restricted to what a tool name may contain". step mcp add (in apps/cli/src/main.ts) is the one path that skips it. Long names can also push server__tool past the 64-char limit.

Steps to reproduce
step mcp add "my.server" -- npx -y some-mcp-server   # accepted, stored as-is
step mcp list
cat ~/.stepcode/config.toml

Verified on 0.1.0 built from source (main @ cb5fc14): names like my server/x and my.server demo are accepted and written to config.toml unchanged, and createRemoteTool registers <name>__<tool> with the raw prefix. The TUI /mcp command and the plugin marketplace are not affected — step mcp add is the only unvalidated write path.

Expected behavior

step mcp add should reject (or sanitize with a notice, like the import path does) names outside [a-zA-Z0-9_-], or registration should sanitize the prefix defensively. I'd be happy to implement this — let me know which side you prefer.

Version

0.1.0 (built from source, main @ cb5fc14)


Note: I used an AI assistant to help polish the wording of this report; the repro steps and code reading are my own and were run locally.

Lenguaje dominante
TypeScript
Estrellas
850
Forks
62
Merge medio
1 d 10 h
PR fusionados (30 d)
51

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de stepfun-ai/Step-Code

Todos los issues de stepfun-ai/Step-Code

Issues similares

Más issues de TypeScript

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.