Skip to main content
Glama
Laz1mov
by Laz1mov

MCP-сервер записи

значок кузнеца

Обзор

Сервер протокола контекста модели (MCP), который позволяет моделям ИИ взаимодействовать с порядковыми надписями, позволяя им отображать содержимое транзакции.

Related MCP server: MCP Bitcoin CLI

🎮 Демо

Демонстрационное видео Goose

💼 Содержание

🔧 Особенности

  • Порядковое определение : автоматическое обнаружение и анализ транзакций Bitcoin в порядковые номера, поддержка текстовых, графических, json и других форматов надписей.

🦆 Интеграция гуся

Goose — это фреймворк агента ИИ с открытым исходным кодом от Block, который поддерживает расширения через Model Context Protocol. Вы можете интегрировать сервер MCP-Inscription как расширение Goose, чтобы Goose мог взаимодействовать с Ordinals Inscriptions. Goose поддерживает два режима интеграции для серверов MCP: запуск сервера как локального процесса (STDIO) или подключение к нему как удаленной службы через Server-Sent Events (SSE). Ниже приведены инструкции для обоих методов:

Использование STDIO (локальное расширение)

Этот метод запускает сервер MCP-Inscription локально как подпроцесс Goose, взаимодействуя через стандартный ввод/вывод.

  1. Клонируйте и соберите репозиторий MCP-Inscription (если вы еще этого не сделали):

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

    Запишите полный абсолютный путь к репозиторию, так как он понадобится вам на следующем шаге.

  2. Добавьте новое расширение в Goose: Откройте интерфейс конфигурации Goose. Это можно сделать через командную строку, запустив goose configure , или в приложении Goose Desktop, перейдя в Настройки > Расширения . В меню выберите «Добавить расширение». ( Использование расширений | goose )

  3. Выберите тип расширения — Расширение командной строки: при появлении запроса на выбор типа расширения выберите Расширение командной строки (в меню CLI или пользовательском интерфейсе), чтобы Goose знал, что ему следует запустить локальную команду ( Использование расширений | goose ) (в отличие от встроенного или удаленного расширения).

  4. Введите данные расширения: Укажите имя и команду для сервера MCP-Inscription:

    • ID : mcp-inscription

    • Имя: Вы можете назвать его «mcp-inscription» или любым другим идентификатором (это будет то, как вы будете называть расширение).

    • Команда: Укажите полный путь к созданному скрипту CLI. Например:

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

      Замените /absolute/path/to/mcp-inscription на фактический путь к месту, куда вы клонировали репозиторий.

    • Обычно вам не нужно добавлять никаких аргументов за пределами пути скрипта (если только ваш сервер не требует специальных флагов).

  5. Завершить и включить: завершить добавление расширения. Goose добавит это новое расширение в свою конфигурацию (обычно ~/.config/goose/config.yaml ). Убедитесь, что расширение включено (если используется мастер CLI, оно должно быть включено по умолчанию после добавления; в приложении Goose Desktop вы можете проверить список расширений и включить его, если это еще не сделано ( Использование расширений | goose ) ( Использование расширений | goose )).

  6. Запустите сеанс Goose с новым расширением: Теперь вы можете использовать расширение в Goose. Если вы запускаете Goose через CLI, запустите сеанс, включающий расширение, выполнив:

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

замените «ordinals» на любое имя, которое вы дали расширению ( Использование расширений | goose ). (Это гарантирует, что сеанс загрузит расширение. В качестве альтернативы, если расширение включено глобально, Goose Desktop или CLI автоматически сделают его доступным во всех сеансах.)

Использование SSE (удалённое расширение)

Этот метод подключает Goose к уже работающему серверу MCP через поток HTTP SSE. Используйте его, если вы хотите запустить сервер MCP-Inscription как автономную службу (возможно, на другой машине или просто независимо от Goose).

  1. Запустите сервер MCP как автономную службу: Запустите сервер MCP-Inscription в режиме SSE для прослушивания подключений:

    # 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

    Это запустит сервер в режиме SSE и сделает его доступным по адресу http://localhost:3000 (или по указанному вами порту).

  2. Добавьте новое расширение в Goose (удалённо): как и прежде, запустите goose configure или используйте Goose UI для добавления расширения ( Using Extensions | goose ). На этот раз выберите Remote Extension , когда вас попросят указать тип расширения ( Using Extensions | goose ). Это сообщит Goose, что он будет подключаться к внешнему серверу через SSE.

  3. Введите данные удаленного расширения: дайте расширению имя (например, "ordinals") и укажите URL сервера. Для URL введите базовый адрес, по которому работает сервер MCP. Например, если ваш сервер прослушивает порт 9000 на локальной машине, вы можете ввести http://localhost:9000 . Goose попытается подключиться к конечной точке SSE сервера MCP по этому адресу. (Goose использует стандартный путь MCP SSE, который по соглашению находится под маршрутом /mcp/sse на сервере, вам обычно нужно просто указать хост и порт, а Goose сделает все остальное.)

  4. Включите расширение: После добавления удаленного расширения убедитесь, что оно включено в настройках Goose (как и в случае STDIO). Необходимо включить только одно из расширений STDIO или SSE (с теми же инструментами) — если вы случайно включили и локальную, и удаленную версию одного и того же сервера, вы можете отключить одно из них, чтобы избежать путаницы.

Использование расширения MCP-Inscription в Goose: После настройки расширения (с помощью любого из указанных выше методов) и его включения вы можете взаимодействовать с Goose и запрашивать данные ord через него. В новом чате или сеансе Goose просто задавайте вопросы, как обычно. Goose распознает, когда использовать инструменты MCP-Inscription для выполнения вашего запроса. Например:

  • «Покажите мне порядковые номера: 0169d12c4edf2026a67e219c10207438a080eb82d8f21860f6784dd66f281389?»

Когда вы зададите эти вопросы, Goose вызовет инструменты сервера MCP-Inscription и вернет ответ (например, информацию о последнем блоке Bitcoin). Вы должны увидеть, как Goose отвечает актуальной информацией, извлеченной из блокчейна Bitcoin через сервер MCP-Inscription.

Если Goose, похоже, не использует расширение (например, если он отвечает, что не может найти информацию), убедитесь, что расширение включено и что сервер запущен (в режиме SSE для удаленного доступа). Вы также можете запустить CLI Goose с подробным протоколированием, чтобы увидеть, пытался ли он вызвать расширение. Как правило, если настроен правильно, Goose автоматически обнаружит возможности сервера MCP-Inscription и использует их при необходимости.

Дополнительные ресурсы: Для получения более подробной информации о расширениях Goose и MCP обратитесь к официальной документации Goose ( Использование расширений | goose ). Документация включает список встроенных и созданных сообществом расширений и объясняет, как серверы MCP интегрируются в Goose. Вы также можете найти каталог доступных серверов MCP и дополнительные советы по настройке в документации Goose и документации Model Context Protocol. Это может помочь, если вы хотите изучить больше расширений или разработать свои собственные.

🔑 Интеграция с рабочим столом Клода

Чтобы использовать сервер MCP-Inscription с Claude Desktop (настольное приложение Anthropic для Claude), выполните следующие действия:

  1. Загрузите и установите Claude Desktop: Посетите официальную страницу загрузок Claude Desktop и получите приложение для вашей операционной системы (macOS или Windows) ( Установка Claude для рабочего стола | Справочный центр Anthropic ). Установите приложение и убедитесь, что вы используете последнюю версию (вы можете проверить наличие обновлений в меню приложения).

  2. Клонируйте и создайте репозиторий MCP-Inscription:

    git clone https://github.com/Laz1mov/mcp-inscription
    cd mcp-inscription
    npm install
    npm run build
  3. Настройте Claude Desktop для использования сервера MCP-Inscription: Откройте файл конфигурации Claude Desktop (он создается при первом редактировании настроек в Claude Desktop):

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

    • Windows: %APPDATA%\Claude\claude_desktop_config.json
      Добавьте запись для сервера MCP-Inscription в эту конфигурацию JSON в разделе "mcpServers" . Например:

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

    В приведенном выше фрагменте "mcp-inscription" — это идентификатор сервера (вы можете назвать его как хотите). Замените /absolute/path/to/mcp-inscription на фактический полный путь к месту, куда вы клонировали репозиторий.

  4. Перезапустите Claude Desktop: сохраните файл claude_desktop_config.json , а затем закройте и снова откройте Claude Desktop . При следующем запуске Claude автоматически запустит сервер MCP-Inscription в соответствии с настройками. Если Claude Desktop был запущен, вам необходимо перезапустить его, чтобы изменения вступили в силу.

Тестирование интеграции Claude Desktop

После перезапуска Claude Desktop вы можете проверить правильность работы сервера MCP-Inscription:

  • Проверьте ответ: Клод должен вернуть подробный ответ (например, саму надпись или информацию о рунах) без ошибок. Если вы получили сообщение об ошибке или не получили полезного ответа, возможно, сервер MCP не подключен должным образом.

  • Проверьте журналы Клода (при необходимости): Claude Desktop предоставляет файлы журналов, которые могут помочь в отладке интеграции MCP. Если инструмент не отвечает, проверьте файлы журналов в:

    • macOS: ~/Library/Logs/Claude/

    • Windows: %APPDATA%\Claude\logs\
      Найдите mcp.log для общих сообщений о подключении MCP и файл с именем mcp-server-mcp-inscription.log (или с любым другим именем, которое вы использовали) для вывода/ошибок сервера MCP. Эти журналы покажут, был ли запущен сервер или были ли какие-либо ошибки (например, неправильный путь или исключения на сервере). Если вы видите ошибки, исправьте конфигурацию или среду по мере необходимости, затем перезапустите Claude Desktop и повторите тестирование.

Установка через Smithery

Чтобы автоматически установить Inscription Server для Claude Desktop через Smithery :

npx -y @smithery/cli install @Laz1mov/mcp-inscription --client claude

📂 Структура проекта

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

📦 Доступные инструменты

show_ordinals

Описание:
Декодирует данные порядковой надписи из данных свидетеля транзакции.

Схема ввода:

{
  "txid": "string"
}

Пример ввода:

{
  "txid": "0169d12c4edf2026a67e219c10207438a080eb82d8f21860f6784dd66f281389"
}

Выход:
Возвращает декодированное содержимое надписи, которое может быть текстом, JSON, HTML или другими форматами.

🚨 Обработка ошибок

Сервер использует пользовательские типы ошибок для обработки операций Bitcoin и запросов блокчейна. Подробные сообщения об ошибках регистрируются с помощью Pino и включаются в ответы клиентов для упрощения отладки.

🤝 Вклад

Приветствуются ваши вклады и запросы на функции! Не стесняйтесь отправлять запросы на включение или открывать проблемы на GitHub.

📝 Лицензия

Данный проект лицензирован по лицензии 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