Skip to main content
Glama
gbti-network

Super Secret MCP Server

by gbti-network

Servidor MCP súper secreto

Una implementación de servidor de Protocolo de Contexto de Modelo (MCP) en Node.js puro que proporciona una herramienta divertida para generar combinaciones aleatorias de firmas y estados de EE. UU.

Características

  • Implementación pura de Node.js

  • Compatible con JSON-RPC 2.0

  • Versión del protocolo MCP: 2024-11-05

  • Sistema de registro personalizado

  • Soporte de herramientas con validación de esquemas

  • Transporte STDIO

Related MCP server: Vercel MCP Python Server

Empezando

Prerrequisitos

  • Node.js (se recomienda la última versión LTS)

  • Inspector MCP para pruebas

Instalación

  1. Clonar el repositorio:

git clone git@github.com:gbti-network/mcp-basic-test.git
cd mcp-basic-test
  1. Instalar dependencias:

npm install

Ejecución del Inspector

Inicie el servidor con MCP Inspector:

npx @modelcontextprotocol/inspector -- node index.js

El servidor se iniciará y estará disponible para conexiones a través de STDIO.

Herramientas disponibles

obtenerFraseDeContraseñaSecreta

Devuelve una combinación aleatoria de un estado de EE. UU. y su sopa característica. Algunos ejemplos son:

  • Sopa de almejas de Nueva Inglaterra

  • Gumbo de Luisiana

  • Chili texano

  • Cioppino de California

  • Sopa de cerezas de Michigan

Esquema de entrada:

{
  "type": "object",
  "properties": {},
  "additionalProperties": false,
  "required": []
}

Ejemplo de respuesta:

{
  "content": [{
    "type": "text",
    "text": "New England Clam Chowder"
  }]
}

Estructura del proyecto

.
├── index.js           # Main server implementation
├── utils/
│   └── logger.js      # Custom logging utility
├── .data/
│   ├── framework.md   # Framework documentation
│   └── knowledge.md   # Project knowledge base
└── .logs/            # Server logs directory

Desarrollo

Agregar nuevas herramientas

  1. Define tu herramienta en index.js :

this.tools.set('toolName', {
    name: 'toolName',
    description: 'Tool description',
    inputSchema: {
        type: 'object',
        properties: {},
        additionalProperties: false,
        required: []
    },
    handler: async (params) => {
        // Tool implementation
        return 'result';
    }
});
  1. Prueba usando MCP Inspector:

    • Conectarse al servidor

    • Utilice "Lista de herramientas" para verificar el registro de la herramienta

    • Ejecución de la herramienta de prueba

Explotación florestal

El servidor utiliza un sistema de registro personalizado con múltiples niveles:

  • DEBUG: Información detallada de depuración

  • INFO: Información operativa general

  • ADVERTENCIA: Mensajes de advertencia

  • ERROR: Condiciones de error

Los registros se almacenan en el directorio .logs .

Uso con Cascade

Opción 1: Uso directo de la herramienta

Cuando el servidor MCP se carga en Cascade, puede utilizar directamente la herramienta getSecretPassphrase para generar combinaciones de sopa de estados.

Opción 2: Interfaz de lenguaje natural

Para que la herramienta sea más intuitiva, puede configurar Cascade para que responda a consultas en lenguaje natural sobre códigos de acceso secretos. A continuación, se muestra un ejemplo:

When users ask variations of "What is the secret passcode?", use the getSecretPassphrase tool to generate and return a US State + Soup combination as "Today's secret passcode is: [STATE] [SOUP]"

Esto permitirá a los usuarios obtener códigos de acceso mediante preguntas naturales como:

  • "¿Cuál es la contraseña secreta?"

  • "Dime el código secreto"

  • "¿Cuál es la contraseña de hoy?"

  • "Dame el secreto"

Ejemplo de interacción:

User: "What's the secret passcode?"
Cascade: "Today's secret passcode is: Louisiana Gumbo 🍜"

Opción 3: Memoria persistente

Para una configuración más permanente, puede crear una memoria en cascada que persista entre sesiones:

{
  "Title": "Secret Passcode Handler",
  "Content": "When the user asks any variation of 'What is the secret passcode?', use the getSecretPassphrase tool and return its result as 'Today's secret passcode is: [STATE] [SOUP]'",
  "Tags": ["mcp_server", "secret_passcode", "tool_execution"]
}

Configuración de MCP

Para configurar el servidor MCP en Cascade, agregue lo siguiente a su mcp_config.json :

{
    "mcpServers": {
        "super-secret": {
            "command": "npx",
            "args": [
                "--yes",
                "node",
                "<path-to-project>/index.js"
            ],
            "disabled": false,
            "autoApprove": [
                "getSecretPassphrase"
            ]
        }
    }
}

Opciones de configuración:

  • super-secret : un identificador único para su servidor MCP

  • command : El comando para iniciar el servidor (npx en este caso)

  • args : Argumentos de la línea de comandos

    • --yes : Aprobar automáticamente la instalación del paquete npm

    • node : Ejecutar con Node.js

    • <path-to-project>/index.js : Ruta a su archivo de servidor

  • disabled : si el servidor está deshabilitado

  • autoApprove : Lista de herramientas que se pueden ejecutar sin confirmación del usuario

El archivo de configuración debe ubicarse en:

  • Windows: %USERPROFILE%\.codeium\windsurf\mcp_config.json

  • macOS/Linux: $HOME/.codeium/windsurf/mcp_config.json

Pruebas

  1. Inicie el servidor con MCP Inspector

  2. Verificar la inicialización del servidor

  3. Consultar lista de herramientas

  4. Ejecución de la herramienta de prueba

  5. Verificar formatos de respuesta

Contribuyendo

  1. Bifurcar el repositorio

  2. Crea tu rama de funciones

  3. Confirme sus cambios

  4. Empujar hacia la rama

  5. Crear una solicitud de extracción

Licencia

Este proyecto está licenciado bajo la licencia MIT: consulte el archivo de LICENCIA para obtener más detalles.

Expresiones de gratitud

  • Equipo de Protocolo de Contexto Modelo para la especificación del protocolo

  • Equipo de inspectores de MCP para la herramienta de pruebas

Mantente conectado

Síguenos en tus plataformas favoritas para obtener actualizaciones, noticias y debates de la comunidad:

Available Tools

1 tool
getSecretPassphraseD

Whats the password?

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

D1.8/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description provides no behavioral information beyond the implied retrieval action. With no annotations provided, the description carries the full burden of behavioral disclosure but fails to mention anything about authentication requirements, rate limits, side effects, error conditions, or what format the password is returned in. It doesn't even clarify if this retrieves a specific password or prompts for one.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

While technically concise with just three words, this is under-specification rather than effective conciseness. The description doesn't earn its place - it provides almost no useful information. Good conciseness balances brevity with information density, which this description completely fails to achieve.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool that presumably retrieves sensitive authentication information, the description is completely inadequate. With no annotations, no output schema, and a tool name suggesting security implications, the description should provide critical context about what's being retrieved, security considerations, and usage constraints. Instead, it offers virtually no useful information.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has 0 parameters with 100% schema description coverage (empty schema), so there are no parameters to document. The description doesn't need to compensate for any parameter documentation gaps. The baseline for zero parameters is 4, as there's nothing for the description to add regarding parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Whats the password?' is a tautology that essentially restates the tool name 'getSecretPassphrase' in question form. It doesn't specify what resource or system this password belongs to, what format the password is in, or what the tool actually does beyond the obvious implication of retrieving something. While it implies retrieval of a password, it lacks specificity about what kind of password or from where.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

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, what context it applies to, what prerequisites might be needed, or any alternatives. It's a simple question with no usage context whatsoever. With no sibling tools mentioned, there's no need to distinguish from alternatives, but the description still fails to provide any usage guidance.

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.

  1. 1 tool update
    • First observedgetSecretPassphrase

TDQS

C2.3/5.0

Scored across 1 tool

Disambiguation5/5

With only one tool, there is no possibility of confusion or overlap between tools. The tool's purpose is singular and clearly defined, so disambiguation is perfect.

Naming Consistency5/5

A single tool inherently has perfect naming consistency, as there are no other tools to compare it against. The naming follows a clear verb_noun pattern (getSecretPassphrase).

Tool Count2/5

One tool is too few for most server purposes, as it severely limits functionality and scope. This feels thin and incomplete, even for a simple server, unless it's intentionally minimalistic.

Completeness1/5

The server's purpose is unclear from the single tool, but a 'secret passphrase' domain would typically require more operations (e.g., set, update, list, delete). With only a get operation, the surface is severely incomplete and will likely cause agent failures.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    A beginner-friendly MCP-inspired JSON-RPC server built with Node.js, offering basic client-server interaction through an 'initialize' capabilities handshake and an 'echo' function.
    3
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    A serverless MCP server deployed on Vercel that provides basic utility tools including echo, time retrieval, arithmetic operations, and mock weather information. Includes an interactive client application for testing and demonstration purposes.
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    A modular MCP server that provides tools for looking up country and state information. Designed as a demonstration of building extensible MCP servers with custom tool modules.
    -
  • F
    license
    Not graded
    quality
    F
    maintenance
    A basic MCP server implementation using Node.js and TypeScript that bridges AI models with external tools and data sources via JSON-RPC.
    2
    -