Skip to main content
Glama
Laz1mov
by Laz1mov

Servidor de inscripción MCP

Descripción general

Un servidor de Protocolo de Contexto de Modelo (MCP) que permite que los modelos de IA interactúen con inscripciones ordinales, lo que les permite mostrar contenido de una transacción.

Related MCP server: MCP Bitcoin CLI

🎮 Demostración

Vídeo de demostración de Goose

💼 Índice de contenidos

🔧 Características

  • Detección de ordinales : detecta y analiza automáticamente las transacciones de Bitcoin en ordinales, admitiendo formatos de inscripciones basados en texto, imágenes, JSON y más.

🦆 Integración de Goose

Goose es un framework de agente de IA de código abierto de Block que admite extensiones mediante el Protocolo de Contexto de Modelo. Puede integrar el servidor MCP-Inscription como una extensión de Goose para que Goose interactúe con las inscripciones ordinales. Goose admite dos modos de integración para servidores MCP: ejecutar el servidor como un proceso local (STDIO) o conectarse a él como un servicio remoto mediante Eventos Enviados por el Servidor (SSE). A continuación, se detallan las instrucciones para ambos métodos:

Uso de STDIO (extensión local)

Este método ejecuta el servidor MCP-Inscription localmente como un subproceso de Goose, comunicándose a través de entrada/salida estándar.

  1. Clonar y crear el repositorio de inscripciones MCP (si aún no lo ha hecho):

    git clone https://github.com/Laz1mov/mcp-inscription
    cd mcp-inscription
    npm install
    npm run build

    Anote la ruta absoluta completa al repositorio, ya que la necesitará en el siguiente paso.

  2. Añadir una nueva extensión en Goose: Abra la interfaz de configuración de Goose. Puede hacerlo mediante la línea de comandos ejecutando goose configure o en la aplicación Goose Desktop, en Configuración > Extensiones . En el menú, seleccione "Añadir extensión". ( Usar extensiones | goose )

  3. Elija el tipo de extensión: Extensión de línea de comandos: cuando se le solicite el tipo de extensión, seleccione Extensión de línea de comandos (en el menú CLI o UI) para que Goose sepa que debe iniciar un comando local ( Uso de extensiones | goose ) (en lugar de una extensión integrada o remota).

  4. Ingrese los detalles de la extensión: Proporcione un nombre y un comando para el servidor MCP-Inscription:

    • ID : mcp-inscription

    • Nombre: Puedes llamarlo “mcp-inscription” o cualquier identificador (así será como te referirás a la extensión).

    • Comando: Especifique la ruta completa del script CLI generado. Por ejemplo:

      node /absolute/path/to/mcp-inscription/build/cli.js

      Reemplace /absolute/path/to/mcp-inscription con la ruta real a donde clonó el repositorio.

    • Generalmente no es necesario agregar ningún argumento más allá de la ruta del script (a menos que su servidor requiera indicadores especiales).

  5. Finalizar y habilitar: Complete la adición de la extensión. Goose añadirá esta nueva extensión a su configuración (normalmente ~/.config/goose/config.yaml ). Asegúrese de que la extensión esté habilitada (si usa el asistente de la CLI, debería estar habilitada por defecto una vez añadida; en la aplicación Goose Desktop, puede consultar la lista de extensiones y activarla si no lo está ya ( Usar extensiones | goose ) ( Usar extensiones | goose )).

  6. Iniciar una sesión de Goose con la nueva extensión: Ahora puede usar la extensión en Goose. Si ejecuta Goose mediante la CLI, inicie una sesión que incluya la extensión ejecutando:

    goose session --with-extension "mcp-inscription"

Reemplazar "ordinales" por el nombre asignado a la extensión ( Uso de extensiones | goose ). (Esto garantiza que la sesión cargue la extensión. Alternativamente, si la extensión está habilitada globalmente, Goose Desktop o CLI la tendrán disponible automáticamente en todas las sesiones).

Uso de SSE (extensión remota)

Este método conecta Goose a un servidor MCP en ejecución mediante una secuencia HTTP SSE. Úselo si desea ejecutar el servidor MCP-Inscription como un servicio independiente (posiblemente en otra máquina o de forma independiente de Goose).

  1. Inicie el servidor MCP como un servicio independiente: ejecute el servidor MCP-Inscription en modo SSE para escuchar conexiones:

    # Navigate to your mcp-inscription directory
    cd /path/to/mcp-inscription
    
    # If you havent built it yet
    npm install
    npm run build
    
    # Run in SSE mode on port 3000 (default)
    SERVER_MODE=sse node build/cli.js
    
    # Alternatively, specify a different port
    SERVER_MODE=sse PORT=9000 node build/cli.js

    Esto iniciará el servidor en modo SSE, haciéndolo disponible en http://localhost:3000 (o el puerto especificado).

  2. Añadir una nueva extensión en Goose (Remoto): Como antes, ejecute goose configure o use la interfaz de usuario de Goose para añadir una extensión ( Uso de extensiones | goose ). Esta vez, seleccione Extensión remota cuando se le solicite el tipo de extensión ( Uso de extensiones | goose ). Esto indica a Goose que se conectará a un servidor externo mediante SSE.

  3. Ingrese los detalles de la extensión remota: Asigne un nombre a la extensión (p. ej., "ordinales") y proporcione la URL del servidor. Para la URL , ingrese la dirección base donde se ejecuta el servidor MCP. Por ejemplo, si su servidor escucha en el puerto 9000 de su equipo local, podría ingresar http://localhost:9000 . Goose intentará conectarse al punto final SSE del servidor MCP en esa dirección. (Goose usa la ruta SSE estándar de MCP, que por convención se encuentra bajo la ruta /mcp/sse del servidor; normalmente, solo necesita proporcionar el host y el puerto, y Goose se encarga del resto).

  4. Habilitar la extensión: Después de agregar la extensión remota, asegúrese de que esté habilitada en la configuración de Goose (igual que en el caso de STDIO). Solo es necesario habilitar una de las extensiones, STDIO o SSE (con las mismas herramientas). Si habilita accidentalmente una versión local y otra remota del mismo servidor, le recomendamos deshabilitar una para evitar confusiones.

Uso de la extensión MCP-Inscription en Goose: Una vez configurada y habilitada la extensión (mediante cualquiera de los métodos anteriores), podrá interactuar con Goose y consultar datos de pedidos a través de ella. En un nuevo chat o sesión de Goose, simplemente haga preguntas como lo haría normalmente. Goose reconocerá cuándo usar las herramientas de MCP-Inscription para atender su solicitud. Por ejemplo:

  • "Muéstrame los ordinales: 0169d12c4edf2026a67e219c10207438a080eb82d8f21860f6784dd66f281389?"

Al hacer estas preguntas, Goose invocará las herramientas del servidor MCP-Inscription y devolverá la respuesta (por ejemplo, la información más reciente del bloque de Bitcoin). Debería ver a Goose respondiendo con información actualizada extraída de la blockchain de Bitcoin a través del servidor MCP-Inscription.

Si Goose no parece usar la extensión (por ejemplo, si indica que no encuentra la información), asegúrese de que esté habilitada y de que el servidor esté ejecutándose (en modo SSE para acceso remoto). También puede ejecutar la CLI de Goose con registro detallado para comprobar si intentó llamar a la extensión. Generalmente, si se configura correctamente, Goose detectará automáticamente las capacidades del servidor MCP-Inscription y las usará cuando sea necesario.

Recursos adicionales: Para más detalles sobre las extensiones de Goose y el MCP, consulte la documentación oficial de Goose ( Uso de extensiones | goose ). La documentación incluye una lista de extensiones integradas y de la comunidad, y explica cómo se integran los servidores MCP en Goose. También puede encontrar un directorio de servidores MCP disponibles y consejos de configuración adicionales en la documentación de Goose y la documentación del Protocolo de Contexto de Modelo. Esto puede ser útil si desea explorar más extensiones o desarrollar las suyas propias.

🔑 Integración de escritorio de Claude

Para utilizar el servidor MCP-Inscription con Claude Desktop (la aplicación de escritorio de Anthropic para Claude), siga estos pasos:

  1. Descarga e instala Claude Desktop: Visita la página oficial de descargas de Claude Desktop y descarga la app para tu sistema operativo (MacOS o Windows) ( Instalación de Claude Desktop | Centro de ayuda de Anthropic ). Instala la app y asegúrate de usar la última versión (puedes buscar actualizaciones en el menú de la app).

  2. Clonar y crear el repositorio de inscripciones MCP:

    git clone https://github.com/Laz1mov/mcp-inscription
    cd mcp-inscription
    npm install
    npm run build
  3. Configure Claude Desktop para usar el servidor MCP-Inscription: abra el archivo de configuración de Claude Desktop (se crea cuando edita por primera vez la configuración en Claude Desktop):

    • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

    • Ventanas: %APPDATA%\Claude\claude_desktop_config.json
      Agregue una entrada para el servidor MCP-Inscription en esta configuración JSON, en la sección "mcpServers" . Por ejemplo:

    {
      "mcpServers": {
        "mcp-inscription": {
          "command": "node",
          "args": ["/absolute/path/to/mcp-inscription/build/cli.js"]
        }
      }
    }

    En el fragmento anterior, "mcp-inscription" es un identificador del servidor (puedes ponerle el nombre que quieras). Reemplaza /absolute/path/to/mcp-inscription por la ruta completa donde clonaste el repositorio.

  4. Reinicie Claude Desktop: Guarde el archivo claude_desktop_config.json y cierre y vuelva a abrir Claude Desktop . La próxima vez que inicie, Claude iniciará automáticamente el servidor MCP-Inscription según su configuración. Si Claude Desktop estaba en ejecución, deberá reiniciarlo para que los cambios surtan efecto.

Prueba de la integración de Claude Desktop

Una vez reiniciado Claude Desktop, puedes probar si el servidor MCP-Inscription funciona correctamente:

  • Verificar la respuesta: Claude debería devolver una respuesta detallada (por ejemplo, la inscripción o información sobre las runas) sin errores. Si recibe un mensaje de error o ninguna respuesta útil, es posible que el servidor MCP no esté conectado correctamente.

  • Revisar los registros de Claude (si es necesario): Claude Desktop proporciona archivos de registro que pueden ayudar a depurar las integraciones de MCP. Si la herramienta no responde, revise los archivos de registro en:

    • macOS: ~/Library/Logs/Claude/

    • Ventanas: %APPDATA%\Claude\logs\
      Busque el mcp.log para los mensajes generales de conexión de MCP y un archivo llamado mcp-server-mcp-inscription.log (o con el nombre que haya usado) para la salida/errores del servidor MCP. Estos registros mostrarán si el servidor se inició o si hubo algún error (como una ruta incorrecta o excepciones en el servidor). Si detecta errores, corrija la configuración o el entorno según sea necesario, reinicie Claude Desktop y vuelva a probar.

📂 Estructura del proyecto

mcp-inscription/
├── src/
│   ├── ordinals_client.ts      # Bitcoin ordinals and runestone utility functions
│   ├── servers/
│   │   ├── index.ts            # Server exports and factory functions
│   │   ├── sse.ts              # Server implementation using SSE transport
│   │   ├── stdio.ts            # Server implementation using STDIO transport
│   │   └── base.ts             # Base server implementation with shared functionality
│   ├── index.ts                # Main entry point
│   ├── cli.ts                  # CLI launcher
│   ├── mcp_inscription_types.ts # Shared types and schemas for the MCP-Inscription server
│   └── utils/
│       ├── logger.ts           # Logger setup
│       ├── cache.ts            # Caching implementation
│       ├── error_handlers.ts   # Error handling utilities
│       ├── json_utils.ts       # JSON processing utilities
│       ├── img_utils.ts        # Image processing and conversion utilities
│       └── version.ts          # Version information
├── .env.example                # Example environment configuration file
├── package.json
├── tsconfig.json
└── README.md

📦 Herramientas disponibles

mostrar_ordinales

Descripción:
Decodifica datos de inscripción ordinal a partir de los datos de testigos de una transacción.

Esquema de entrada:

{
  "txid": "string"
}

Ejemplo de entrada:

{
  "txid": "0169d12c4edf2026a67e219c10207438a080eb82d8f21860f6784dd66f281389"
}

Producción:
Devuelve el contenido de la inscripción decodificada, que puede ser texto, JSON, HTML u otros formatos.

🚨 Manejo de errores

El servidor utiliza tipos de error personalizados para gestionar las operaciones de Bitcoin y las consultas de blockchain. Los mensajes de error detallados se registran mediante Pino y se incluyen en las respuestas del cliente para facilitar la depuración.

🤝 Contribuyendo

¡Agradecemos sus contribuciones y solicitudes de funcionalidad! No dude en enviar solicitudes de incorporación de cambios o abrir incidencias en GitHub.

📝 Licencia

Este proyecto está licenciado bajo la licencia MIT .

Available Tools

1 tool
show_ordinalsB

🔹 Bitcoin Ordinals Expert Assistant

🚀 MANDATORY TWO-RESPONSE PROCESS FOR IMAGES

I strictly follow a two-step structured workflow for processing Bitcoin Ordinal inscriptions. STRICT ADHERENCE IS REQUIRED.


📌 Required Tools & Workflow

🔍 Tools Used:

1️⃣ show_ordinals (MANDATORY FIRST STEP)

  • Fetches inscription data.

  • If the inscription is an image, it MUST:

    • Save it locally and return the local_file_path.

    • (Code currently does NOT return a separate displayable source, only the local path)

2️⃣ image_processor / vision (OCR & Visual Analysis ONLY)

  • MUST be used for extracting textual/visual data from the image.

  • Takes local_file_path as input.


🚀 MANDATORY TWO-STEP RESPONSE WORKFLOW (FOR IMAGES)

📌 RESPONSE 1: Display Attempt + Technical Details (NON-TERMINAL)

Execute show_ordinals FIRST.
Return an <img> tag using the local_file_path provided by show_ordinals as the src attribute. ✔ Follow with detailed technical metadata.
STOP HERE. NO ANALYSIS YET.

✅ RESPONSE FORMAT (STRICTLY ENFORCED):

<!-- Attempting display using local path. Note: May not render in standard browsers due to security restrictions. -->
<img src="[local_file_path from show_ordinals]" alt="Ordinal Image Inscription" style="max-width: 100%; height: auto;" />

### 📊 Technical Details  
* **MIME Type:** [MIME type]
* **Size:** [Size]
* **Transaction ID:** [Tx ID]
* **Status:** [Status]
* **Inscription Input:** [Input]
* **Local Path (for analysis):** `[local_file_path from show_ordinals]`
* [Other available details]

🔹 End FIRST response here. No OCR, No AI-generated descriptions. This response is intended to be NON-TERMINAL to allow for Step 2.


📌 RESPONSE 2: OCR & Content Analysis (Using Designated Tools ONLY)

AFTER Response 1, consult available tools.Execute image_processor OR vision using the local_file_path from Response 1.Strictly use ONLY tool-generated analysis.
If BOTH tools fail, state failure explicitly.
Return a new markdown response with the extracted data.

✅ RESPONSE FORMAT (STRICTLY ENFORCED):

### 📝 Detailed Image Analysis (Result from '[Executed Tool Name]')

[Extracted OCR text, visual description, or failure message from the tool ONLY]

No hallucinations. No AI-generated assumptions.


📌 FALLBACK MECHANISM (IF OCR TOOLS FAIL)

  • If BOTH image_processor AND vision fail, use a verified fallback OCR tool (if available).

  • If no fallback exists, explicitly state failure instead of hallucinating content.


🎯 Summary: Strict 2-Response Workflow

Step 1: Execute show_ordinals → Attempt Image Display (using local path) + Metadata. (Response intended as Non-Terminal) ✅ Step 2: Execute image_processor / vision → Analysis Description. (Separate Response)


💡 This ensures clarity, prevents AI hallucinations, and provides structured responses. 🚀

ParametersJSON Schema
NameRequiredDescriptionDefault
txidYesThe unique 64-character hexadecimal identifier of the Bitcoin transaction to inspect for Ordinals. Example: 'f1d2d3...a8b9c0'.
inscription_indexNoOptional. The specific index (starting from 0) of the inscription to retrieve within the transaction, if there are multiple.
content_type_filterNoOptional. Filter inscriptions by content type, e.g., 'image/png', 'text/plain', 'application/json'.

TDQS

B3.2/5.0
Behavior4/5

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

With no annotations provided, the description carries full burden and does disclose important behavioral traits: it fetches inscription data, saves images locally, returns a local_file_path, and is part of a mandatory two-response workflow. It explains that code 'currently does NOT return a separate displayable source, only the local path' which is valuable behavioral context. However, it doesn't mention error conditions, 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.

Conciseness1/5

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

The description is extremely verbose (over 800 words) and poorly structured for a tool definition. It's front-loaded with workflow instructions rather than tool purpose. Most content is about the mandatory two-response process, fallback mechanisms, and response formats rather than concisely describing the tool itself. Every sentence does not earn its place in a tool description context.

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

Completeness3/5

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

Given 3 parameters with 100% schema coverage but no annotations and no output schema, the description provides extensive workflow context but lacks critical tool-specific information. It doesn't explain what the tool returns (beyond mentioning local_file_path for images), error conditions, or performance characteristics. The workflow instructions are comprehensive but don't compensate for missing tool behavior documentation.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all three parameters thoroughly. The description adds no parameter-specific information beyond what's in the schema. It mentions the tool fetches inscription data but doesn't explain how parameters affect this process. Baseline 3 is appropriate when schema does the heavy lifting.

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 states 'Fetches inscription data' which is a vague purpose statement. While it mentions Bitcoin Ordinals context, it doesn't specify what data is fetched (metadata, content, both) or how it differs from other potential tools. The description is primarily workflow instructions rather than a clear tool purpose definition.

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

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit, detailed guidance on when to use this tool: 'MANDATORY FIRST STEP' for processing Bitcoin Ordinal inscriptions, specifically for images where it must save locally and return the local_file_path. It clearly states this is step 1 of a two-step workflow and specifies when to use sibling tools (image_processor/vision) in step 2.

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. Dates show when Glama detected each change.

  1. 1 tool update
    • First observedshow_ordinals

TDQS

B3.2/5.0
Disambiguation5/5

With only one tool, there is no possibility of ambiguity or overlap between tools. The tool 'show_ordinals' has a singular, clear purpose of fetching Bitcoin Ordinal inscription data, so agents cannot misselect among multiple options.

Naming Consistency5/5

The single tool name 'show_ordinals' follows a clear verb_noun pattern (show + ordinals), which is consistent and predictable. Since there is only one tool, there is no inconsistency to evaluate, and the naming convention is straightforward.

Tool Count2/5

The server has only one tool, which is too few for its stated purpose of being a 'Bitcoin Ordinals Expert Assistant' with a mandatory two-step workflow involving multiple tools. The description references other tools like 'image_processor' and 'vision' that are not provided, creating a significant mismatch between the expected scope and the actual tool surface.

Completeness1/5

The tool set is severely incomplete. The server description mandates a two-response process using multiple tools (e.g., 'show_ordinals', 'image_processor', 'vision'), but only 'show_ordinals' is available. This leaves obvious gaps that will cause agent failures, as critical analysis steps cannot be performed without the missing tools.

Maintenance

ActivityInactive
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables interaction with the Stacks blockchain through Claude Desktop. Manage wallets, trade tokens on DEXs, stack STX for Bitcoin rewards, and track portfolio—all through natural conversation.
    30
    6
    MIT
  • A
    license
    C
    quality
    D
    maintenance
    Enables AI applications to interact with the Bitcoin Network, manage wallets, check balances, convert prices, and send transactions.
    4
    61
    6
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Laz1mov/mcp-inscription'

If you have feedback or need assistance with the MCP directory API, please join our Discord server