Skip to main content
Glama
AbdelStark
by AbdelStark

₿itcoin & Lightning Network MCP 서버

개요

AI 모델이 비트코인 및 라이트닝 네트워크와 상호 작용하여 키 생성, 주소 검증, 거래 디코딩, 블록체인 쿼리 등의 작업을 수행할 수 있도록 하는 모델 컨텍스트 프로토콜(MCP) 서버입니다.

Related MCP server: Bankless Onchain MCP Server

🎮 데모

클로드 데모 영상

구스 데모 영상

💼 목차

🔧 특징

  • 키 생성 : 주소, 공개 키, 개인 키(WIF)를 포함한 새로운 비트코인 키 쌍을 생성합니다.

  • 주소 검증 : 비트코인 주소의 정확성을 검증합니다.

  • 거래 디코딩 : 원시 비트코인 거래를 구문 분석하고 사람이 읽을 수 있는 형식으로 세부 정보를 표시합니다.

  • 블록체인 쿼리 :

    • 최신 블록 : 가장 최근 블록에 대한 세부 정보(해시, 높이, 타임스탬프, 거래 수 등)를 검색합니다.

    • 거래 세부 정보 : TXID를 사용하여 거래에 대한 자세한 정보를 가져옵니다.

  • 라이트닝 네트워크 :

    • 송장 디코딩 : BOLT11 Lightning 송장을 구문 분석하고 사람이 읽을 수 있는 정보를 표시합니다.

    • 결제 : LNBits 지갑에서 직접 Lightning 송장을 지불하세요.

🔑 Claude 데스크톱 통합

Claude Desktop(Claude용 Anthropic 데스크톱 앱)에서 Bitcoin MCP 서버를 사용하려면 다음 단계를 따르세요.

  1. Claude Desktop 다운로드 및 설치: 공식 Claude Desktop 다운로드 페이지를 방문하여 운영 체제(macOS 또는 Windows)에 맞는 앱을 다운로드하세요( Claude Desktop 설치 | Anthropic 도움말 센터 ). 앱을 설치하고 최신 버전을 사용하고 있는지 확인하세요(앱 메뉴에서 업데이트 확인 가능).

  2. Claude Desktop을 구성하여 Bitcoin MCP 서버를 사용하려면 Claude Desktop 구성 파일을 엽니다(Claude Desktop에서 처음으로 설정을 편집할 때 생성됩니다).

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

    • Windows: %APPDATA%\Claude\claude_desktop_config.json
      이 JSON 설정의 "mcpServers" 섹션에 비트코인 MCP 서버 항목을 추가하세요. 예:

    지엑스피1

    위 스니펫에서 "bitcoin-mcp" 서버의 식별자입니다(원하는 이름으로 지정할 수 있습니다). command``npx 명령을 실행하도록 설정되어 있으며, args 비트코인 MCP 서버 스크립트 또는 서버를 실행하는 명령의 경로를 가리킵니다.

  3. Claude Desktop을 다시 시작하세요. claude_desktop_config.json 파일을 저장한 후 Claude Desktop을 닫았다가 다시 여세요 . 다음 실행 시 Claude는 구성된 대로 Bitcoin MCP 서버를 자동으로 시작합니다. Claude Desktop이 실행 중이었다면 변경 사항을 적용하려면 다시 시작해야 합니다.

Claude Desktop 통합 테스트

Claude Desktop을 다시 시작하면 Bitcoin MCP 서버가 올바르게 작동하는지 테스트할 수 있습니다.

  • Claude에게 비트코인 관련 샘플 질문을 해보세요. 예를 들어, "비트코인 네트워크의 최신 블록은 무엇인가요?" 라고 질문해 보세요. 통합이 성공적으로 완료되면 Claude의 응답에는 "모르겠습니다"나 일반적인 답변 대신 MCP 서버를 통해 가져온 최신 블록이 포함되어야 합니다. 또한 "TXID가 abcdef1234567890abcdef1234567890abcdef1234567890인 거래에 대한 정보를 알려주세요." 와 같은 다른 질문도 시도해 볼 수 있습니다. Claude는 MCP 서버의 도구를 사용하여 데이터를 검색하고 질문에 답변해야 합니다.

  • 응답 확인: Claude는 오류 없이 자세한 답변(예: 비트코인 네트워크의 최신 블록)을 반환해야 합니다. 오류 메시지가 표시되거나 유용한 응답이 없으면 MCP 서버가 제대로 연결되지 않았을 수 있습니다.

  • Claude의 로그를 확인하세요(필요한 경우): Claude Desktop은 MCP 통합 디버깅에 도움이 되는 로그 파일을 제공합니다. 도구가 응답하지 않으면 다음 위치에서 로그 파일을 확인하세요.

    • macOS: ~/Library/Logs/Claude/

    • 윈도우: %APPDATA%\Claude\logs\
      일반적인 MCP 연결 메시지는 mcp.log , MCP 서버 출력/오류는 mcp-server-bitcoin-mcp.log 파일(또는 사용자가 지정한 파일 이름)을 확인하세요. 이 로그는 서버 시작 여부 또는 오류(예: 잘못된 경로 또는 서버 예외) 발생 여부를 보여줍니다. 오류가 발생하면 필요에 따라 구성 또는 환경을 수정한 후 Claude Desktop을 다시 시작하고 다시 테스트하세요.

🦆 구스 통합

Goose는 Block에서 개발한 오픈소스 AI 에이전트 프레임워크로, 모델 컨텍스트 프로토콜(Model Context Protocol)을 통한 확장 기능을 지원합니다. 비트코인 MCP 서버를 Goose 확장 기능으로 통합하여 Goose가 비트코인 블록체인과 상호 작용할 수 있도록 할 수 있습니다. Goose는 MCP 서버에 대해 두 가지 통합 모드를 지원합니다. 서버를 로컬 프로세스(STDIO)로 실행하거나 서버 전송 이벤트(SSE)를 통해 원격 서비스로 연결하는 것입니다. 두 가지 방법에 대한 지침은 다음과 같습니다.

STDIO(로컬 확장) 사용

이 방법은 Goose의 하위 프로세스로 로컬에서 Bitcoin MCP 서버를 실행하여 표준 입출력을 통해 통신합니다.

  1. Goose에 새 확장 프로그램 추가: Goose의 설정 인터페이스를 엽니다. 명령줄에서 goose configure 실행하거나 Goose 데스크톱 앱에서 설정 > 확장 프로그램 으로 이동하여 확장 프로그램을 추가할 수 있습니다. 메뉴에서 "확장 프로그램 추가"를 선택합니다( 확장 프로그램 | goose 사용 ).

  2. 확장 유형 선택 - 명령줄 확장: 확장 유형을 묻는 메시지가 표시되면 명령줄 확장 (CLI 메뉴 또는 UI에서)을 선택하여 Goose가 로컬 명령을 실행하도록 합니다( 확장 사용 | goose )(기본 제공 또는 원격 확장과 대조적으로).

  3. 확장 세부 정보를 입력하세요. Bitcoin MCP 서버의 이름과 명령을 제공하세요.

    • 이름: "비트코인"이라고 부르거나 어떤 식별자로든 부를 수 있습니다(이것이 확장자를 지칭하는 방식입니다).

    • 명령: MCP 서버 실행 방법을 지정합니다. 예를 들어 Python 스크립트가 있는 경우, 실행할 명령을 입력합니다. CLI 구성 프로그램에서 "어떤 명령을 실행해야 합니까?"라는 메시지가 표시될 수 있습니다. 다음과 같이 입력합니다.

      npx -y bitcoin-mcp@latest

      이렇게 하면 Goose가 Bitcoin MCP 서버를 시작합니다( GitHub - AbdelStark/bitcoin-mcp: Bitcoin MCP Server ). (Claude 설정과 마찬가지로 서버 스크립트의 올바른 경로나 서버를 실행할 올바른 명령을 사용해야 합니다.)

    • 일반적으로 스크립트 경로 외에 인수를 추가할 필요는 없습니다(서버에 특수 플래그가 필요한 경우 제외). 위 명령은 Goose가 명령줄 확장을 위해 기대하는 기본 STDIO 전송 방식을 사용합니다. (Goose 설정 파일에서 이는 cmd: "npx" , args: ["-y", "bitcoin-mcp@latest"] , type: stdio 로 표준 I/O 모드를 나타내는 항목( 확장 사용 | goose )에 해당합니다.)

  4. 마무리 및 활성화: 확장 프로그램 추가를 완료합니다. Goose가 이 새 확장 프로그램을 구성(일반적으로 ~/.config/goose/config.yaml )에 추가합니다. 확장 프로그램이 활성화 되어 있는지 확인합니다(CLI 마법사를 사용하는 경우, 추가 시 기본적으로 활성화되어 있어야 합니다. Goose 데스크톱 앱에서 확장 프로그램 목록을 확인하고 활성화되어 있지 않으면 활성화할 수 있습니다(확장 프로그램 사용 | goose ).

  5. 새 확장 프로그램으로 Goose 세션을 시작하세요. 이제 Goose에서 확장 프로그램을 사용할 수 있습니다. CLI를 통해 Goose를 실행하는 경우, 다음을 실행하여 확장 프로그램이 포함된 세션을 시작하세요.

    goose session --with-extension "bitcoin"

"bitcoin"을 확장 프로그램에 지정한 이름으로 변경합니다( 확장 프로그램 사용 | goose ). (이렇게 하면 세션에서 확장 프로그램이 로드됩니다. 또는 확장 프로그램이 전역적으로 활성화된 경우, Goose Desktop 또는 CLI가 모든 세션에서 자동으로 해당 확장 프로그램을 사용할 수 있도록 설정합니다.)

SSE(원격 확장) 사용

이 방법은 HTTP SSE 스트림을 통해 Goose를 이미 실행 중인 MCP 서버에 연결합니다. Bitcoin MCP 서버를 독립형 서비스로 실행하려는 경우(다른 컴퓨터에서 실행하거나 Goose와 독립적으로 실행하려는 경우) 이 방법을 사용하세요.

  1. MCP 서버를 독립형 서비스로 시작합니다. Bitcoin MCP 서버를 실행하여 연결을 수신 대기하도록 합니다. 실제로는 서버가 MCP의 HTTP 엔드포인트를 제공하는 모드로 시작되어야 함을 의미합니다. 예를 들어, 특정 포트에서 수신 대기하도록 특정 명령이나 옵션을 사용하여 서버를 실행할 수 있습니다(예: MCP 라이브러리의 내장 웹 서버 기능 사용 또는 웹 프레임워크에서 실행). 서버가 알려진 URL(예: http://localhost:9000 )에서 접속 가능하고 SSE를 통한 MCP 프로토콜을 지원하는지 확인하십시오.

  2. Goose(원격)에 새 확장 프로그램을 추가합니다. 이전과 마찬가지로 goose configure 실행하거나 Goose UI를 사용하여 확장 프로그램을 추가합니다 ( "확장 프로그램 사용" | "goose "). 이번에는 확장 프로그램 유형을 묻는 메시지가 나타나면 "원격 확장 프로그램"을 선택합니다( "확장 프로그램 사용" | "goose "). 이렇게 하면 Goose가 SSE를 통해 외부 서버에 연결됩니다.

  3. 원격 확장 프로그램 세부 정보를 입력하세요. 확장 프로그램 이름(예: "bitcoin")을 지정하고 서버의 URL을 입력하세요. URL 에는 MCP 서버가 실행 중인 기본 주소를 입력하세요. 예를 들어, 서버가 로컬 컴퓨터의 9000번 포트에서 수신 대기하는 경우 http://localhost:9000 입력할 수 있습니다. Goose는 해당 주소에서 MCP 서버의 SSE 엔드포인트에 연결을 시도합니다. (Goose는 표준 MCP SSE 경로를 사용하며, 관례적으로 서버의 /mcp/sse 경로 아래에 있습니다. 일반적으로 호스트와 포트만 입력하면 나머지는 Goose가 처리합니다.)

  4. 확장 기능 활성화: 원격 확장 기능을 추가한 후, STDIO의 경우처럼 Goose 설정에서 활성화되었는지 확인하세요. STDIO 또는 SSE 확장 기능 중 하나만 활성화하면 됩니다(같은 도구를 사용). 실수로 같은 서버의 로컬 버전과 원격 버전을 모두 활성화한 경우, 혼동을 방지하기 위해 하나를 비활성화하는 것이 좋습니다.

Goose에서 비트코인 MCP 확장 프로그램 사용하기: 확장 프로그램을 설정하고 활성화하면(위의 방법 중 하나를 통해) Goose와 상호 작용하고 비트코인 데이터를 쿼리할 수 있습니다. 새로운 Goose 채팅이나 세션에서 평소처럼 질문하기만 하면 됩니다. Goose는 요청을 처리하기 위해 비트코인 MCP 도구를 사용해야 하는 시점을 인식합니다. 예를 들면 다음과 같습니다.

  • "최신 비트코인 블록은 뭐예요?"

  • "TXID abcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890을 사용한 거래에 대한 정보를 알려주세요."

이러한 질문을 하면 Goose는 MCP 서버의 도구를 호출하여 답변(예: 최신 비트코인 블록 정보)을 반환합니다. Goose가 MCP 서버를 통해 비트코인 블록체인에서 가져온 최신 정보로 응답하는 것을 볼 수 있습니다.

Goose가 해당 확장 프로그램을 사용하지 않는 것 같으면(예: 정보를 찾을 수 없다고 응답하는 경우), 해당 확장 프로그램이 활성화되어 있고 서버가 SSE 모드(원격)로 실행 중인지 확인하세요. Goose의 CLI를 자세한 로깅과 함께 실행하여 해당 확장 프로그램 호출을 시도했는지 확인할 수도 있습니다. 일반적으로 올바르게 구성된 경우, Goose는 MCP 서버의 기능을 자동으로 감지하여 필요한 경우 사용합니다.

추가 자료: Goose 확장 기능 및 MCP에 대한 자세한 내용은 Goose 공식 문서( 확장 기능 사용 | goose )를 참조하세요. 이 문서에는 기본 제공 및 커뮤니티 확장 기능 목록이 포함되어 있으며, MCP 서버가 Goose에 통합되는 방식을 설명합니다. 또한 Goose 문서와 MCP(Model Context Protocol) 문서에서 사용 가능한 MCP 서버 목록과 추가 구성 팁을 확인할 수 있습니다. 더 많은 확장 기능을 살펴보거나 직접 개발하려는 경우 이 문서가 도움이 될 수 있습니다.

📦 개발 설정

개발 설정 가이드에서 설정 지침을 찾아보세요.

Lightning 네트워크 구성(선택 사항)

라이트닝 네트워크 기능을 사용하려면 LNBits 연결 세부 정보를 구성해야 합니다. 이는 선택 사항이며 라이트닝 네트워크 도구를 사용하려는 경우에만 필수입니다.

{
  "lnbitsUrl": "https://demo.lnbits.com",  
  "lnbitsAdminKey": "your_admin_key",      // Required for making payments
  "lnbitsReadKey": "your_read_key"         // Required for wallet information
}

다음 방법을 통해 이러한 값을 얻을 수 있습니다.

  1. LNBits 에서 계정 만들기

  2. 새로운 지갑 만들기

  3. API 키를 찾으려면 API 정보로 이동하세요.

📦 사용 가능한 도구

사용 가능한 도구는 API 참조 가이드에서 찾아보세요.

🚨 오류 처리

서버는 사용자 지정 오류 유형을 사용하여 비트코인 작업 및 블록체인 쿼리를 처리합니다. 자세한 오류 메시지는 Pino를 사용하여 기록되며, 디버깅을 용이하게 하기 위해 클라이언트 응답에 포함됩니다.

🤝 기여하기

기여와 기능 요청을 환영합니다! GitHub에서 풀 리퀘스트를 제출하거나 이슈를 열어주세요.

📝 라이센스

이 프로젝트는 MIT 라이선스 에 따라 라이선스가 부여되었습니다.

Available Tools

7 tools
decode_invoiceC

Decode a Lightning invoice

ParametersJSON Schema
NameRequiredDescriptionDefault
invoiceYesBOLT11 Lightning invoice

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the action 'decode' but doesn't explain what decoding entails (e.g., extracting payment details, checking validity, or returning structured data). For a tool with zero annotation coverage, this leaves significant gaps in understanding its behavior and output.

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

Conciseness5/5

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

The description is a single, efficient sentence with zero waste. It's front-loaded with the core action and resource, making it easy to parse quickly. No unnecessary words or redundant information are included.

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

Completeness2/5

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

Given the lack of annotations and output schema, the description is incomplete. It doesn't explain what the tool returns (e.g., decoded fields like amount, timestamp, or destination) or potential errors (e.g., invalid invoice format). For a decoding tool with no structured output documentation, this leaves the agent guessing about results.

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%, with the parameter 'invoice' documented as a 'BOLT11 Lightning invoice'. The description doesn't add any meaning beyond this, such as format examples or validation rules. Since the schema already provides adequate coverage, the baseline score of 3 is appropriate.

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

Purpose4/5

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

The description clearly states the verb 'decode' and the resource 'Lightning invoice', making the purpose immediately understandable. It doesn't differentiate from siblings like 'decode_tx' or 'pay_invoice', but the core action is specific enough to understand what the tool does.

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

Usage Guidelines2/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 versus alternatives like 'decode_tx' or 'validate_address'. It doesn't mention prerequisites, such as needing a valid BOLT11 invoice, or clarify that this is for decoding rather than processing payments (which 'pay_invoice' handles).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

decode_txC

Decode a Bitcoin transaction

ParametersJSON Schema
NameRequiredDescriptionDefault
rawHexYesTransaction hex

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden but offers minimal behavioral insight. It doesn't disclose whether this is a read-only operation, if it requires network access, potential rate limits, error conditions, or what the decoded output looks like. The description is functional but lacks context about how the tool behaves.

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

Conciseness5/5

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

The description is a single, efficient sentence with zero wasted words. It's front-loaded with the core purpose and appropriately sized for a simple tool with one parameter.

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

Completeness2/5

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

For a tool with no annotations and no output schema, the description is inadequate. It doesn't explain what 'decode' entails (e.g., parsing inputs/outputs, scripts), the format of the result, or error handling. Given the complexity of Bitcoin transactions and lack of structured context, more completeness is needed.

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?

The schema description coverage is 100%, with the parameter 'rawHex' fully documented in the schema as 'Transaction hex'. The description adds no additional meaning beyond this, so it meets the baseline for high schema coverage without compensating value.

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

Purpose4/5

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

The description clearly states the verb ('decode') and resource ('a Bitcoin transaction'), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'get_transaction' or 'decode_invoice', which prevents a perfect score.

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

Usage Guidelines2/5

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

No guidance is provided about when to use this tool versus alternatives. The description doesn't mention prerequisites (e.g., needing raw hex data), exclusions, or comparisons to sibling tools like 'get_transaction' (which might retrieve transaction details differently).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

generate_keyB

Generate a new Bitcoin key pair and address

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden but only states what the tool does without behavioral details. It doesn't disclose if this requires network connectivity, has rate limits, stores keys securely, or what format the output takes (e.g., public/private keys, address type). This leaves significant gaps for agent understanding.

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

Conciseness5/5

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

The description is a single, efficient sentence that directly states the tool's function without unnecessary words. It is front-loaded with the core action and resource, making it highly concise and well-structured.

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

Completeness2/5

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

Given the complexity of generating cryptographic keys and the lack of annotations and output schema, the description is incomplete. It doesn't explain return values (e.g., key formats), security implications, or error conditions, leaving the agent with insufficient context for safe and effective use.

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 input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description appropriately avoids discussing parameters, focusing on the tool's purpose. A baseline of 4 is applied as it compensates adequately for the lack of parameters.

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

Purpose4/5

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

The description clearly states the action ('Generate') and the resource ('a new Bitcoin key pair and address'), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'validate_address' or 'pay_invoice', which prevents a perfect score.

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

Usage Guidelines2/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 versus alternatives like 'validate_address' for checking existing addresses or 'pay_invoice' for transactions. It lacks context about prerequisites, such as needing Bitcoin network access or when key generation is appropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_latest_blockC

Get the latest block

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It only states the action without details on permissions, rate limits, response format, or potential side effects. For a tool with zero annotation coverage, this is insufficient to inform the agent adequately.

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

Conciseness5/5

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

The description is extremely concise with a single sentence, 'Get the latest block', which is front-loaded and wastes no words. It efficiently conveys the core purpose without unnecessary elaboration.

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

Completeness2/5

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

Given the lack of annotations and output schema, the description is incomplete. It does not explain what the tool returns (e.g., block data structure, error handling) or provide context for its use among siblings. For a tool with no structured support, more descriptive content is needed.

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 input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description does not add parameter information, which is appropriate here, but it could have clarified the lack of parameters explicitly. Baseline is 4 due to the absence of parameters.

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

Purpose3/5

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

The description 'Get the latest block' clearly states the action (get) and resource (latest block), making the purpose understandable. However, it lacks specificity about what a 'block' refers to in this context (e.g., blockchain block, data block) and does not differentiate from sibling tools like 'get_transaction', leaving room for ambiguity.

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

Usage Guidelines2/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 versus alternatives. It does not mention any prerequisites, context, or comparisons to sibling tools such as 'get_transaction' or 'decode_tx', leaving the agent without usage instructions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_transactionC

Get transaction details

ParametersJSON Schema
NameRequiredDescriptionDefault
txidYesTransaction ID

TDQS

C2.6/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden but only states the basic action without disclosing behavioral traits such as whether this is a read-only operation, error handling, rate limits, or authentication needs. It mentions 'details' but doesn't specify what those include.

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

Conciseness4/5

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

The description is extremely concise with 'Get transaction details'—a single, front-loaded sentence that efficiently conveys the core purpose without unnecessary words. However, it may be overly terse for a tool with no annotations or output schema.

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

Completeness2/5

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

Given the lack of annotations and output schema, the description is incomplete. It doesn't explain what transaction details are returned, error conditions, or how it differs from sibling tools. For a tool with one parameter but no structured context, more information is needed.

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?

The input schema has 100% description coverage, clearly documenting the 'txid' parameter. The description adds no additional meaning beyond the schema, so it meets the baseline of 3 for adequate but not enhanced parameter semantics.

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

Purpose3/5

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

The description 'Get transaction details' states the basic action (get) and resource (transaction details), but it's vague about what specific details are retrieved and doesn't differentiate from sibling tools like 'decode_tx' or 'get_latest_block'. It provides minimal but adequate purpose information.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives like 'decode_tx' (which might decode transaction data) or 'get_latest_block' (which retrieves block information). The description lacks context about prerequisites or typical use cases.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pay_invoiceC

Pay a Lightning invoice

ParametersJSON Schema
NameRequiredDescriptionDefault
invoiceYesBOLT11 Lightning invoice

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. It states 'Pay a Lightning invoice' which implies a financial transaction, but doesn't clarify if this is irreversible, requires authentication, has rate limits, or what happens on success/failure. This is inadequate for a payment tool with zero annotation coverage.

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

Conciseness5/5

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

The description is a single, efficient sentence with zero wasted words. It's appropriately sized for a simple tool with one parameter and gets straight to the point without unnecessary elaboration.

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

Completeness2/5

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

For a payment tool with no annotations and no output schema, the description is insufficient. It doesn't explain what happens after payment (success confirmation, error handling), doesn't mention security implications, and provides minimal behavioral context despite the tool's financial nature.

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?

The input schema has 100% description coverage, with the 'invoice' parameter documented as 'BOLT11 Lightning invoice'. The description doesn't add any additional meaning beyond what the schema provides, such as format examples or validation requirements, so it meets the baseline for high schema coverage.

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

Purpose4/5

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

The description clearly states the action ('Pay') and target resource ('a Lightning invoice'), making the purpose immediately understandable. It doesn't differentiate from siblings like 'decode_invoice' or 'get_transaction', but it's specific enough to understand what the tool does.

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

Usage Guidelines2/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 versus alternatives like 'decode_invoice' or 'validate_address'. It doesn't mention prerequisites, such as requiring a valid invoice or sufficient balance, leaving the agent to infer usage context from the tool name alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

validate_addressC

Validate a Bitcoin address

ParametersJSON Schema
NameRequiredDescriptionDefault
addressYesThe Bitcoin address to validate

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. 'Validate' implies a read-only check, but the description doesn't specify what validation entails (format, checksum, network type), whether it requires network connectivity, what happens with invalid inputs, or what the output format will be. This leaves significant behavioral gaps.

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

Conciseness5/5

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

The description is a single, efficient sentence that directly states the tool's purpose with zero wasted words. It's appropriately sized for a simple validation tool and is perfectly front-loaded.

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

Completeness2/5

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

For a validation tool with no annotations and no output schema, the description is insufficiently complete. It doesn't explain what constitutes validation, what the tool returns (success/failure, validation details, error messages), or how it differs from related sibling tools. The agent would lack critical context to use this tool effectively.

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?

The schema has 100% description coverage, with the single parameter 'address' clearly documented as 'The Bitcoin address to validate'. The description adds no additional parameter semantics beyond what the schema already provides, so the baseline score of 3 is appropriate.

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

Purpose4/5

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

The description clearly states the verb ('validate') and resource ('Bitcoin address'), making the purpose immediately understandable. However, it doesn't differentiate this validation tool from potential sibling tools that might also validate addresses in different contexts or with different criteria.

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

Usage Guidelines2/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 versus alternatives. It doesn't mention whether this is for address format validation, network compatibility checking, or other specific validation contexts, nor does it reference any sibling tools that might serve related purposes.

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. 7 tool updates
    • First observeddecode_invoice
    • First observeddecode_tx
    • First observedgenerate_key
    • First observedget_latest_block
    • First observedget_transaction
    • First observedpay_invoice
    • First observedvalidate_address

TDQS

B3.4/5.0

Scored across 7 tools

Disambiguation5/5

Each tool has a clearly distinct purpose with no ambiguity: decode_invoice and decode_tx handle decoding, generate_key creates keys, get_latest_block and get_transaction retrieve blockchain data, pay_invoice processes payments, and validate_address checks addresses. There is no overlap in functionality that could cause misselection.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern (e.g., decode_invoice, generate_key, get_transaction) with no deviations in style or convention. This predictability makes the set easy to navigate and understand.

Tool Count5/5

With 7 tools, the count is well-scoped for a Bitcoin server, covering key operations like decoding, key generation, data retrieval, payments, and validation. Each tool earns its place without feeling excessive or insufficient for the domain.

Completeness4/5

The tool surface covers core Bitcoin and Lightning operations effectively, including decoding, key management, transaction handling, and payments. A minor gap exists in lifecycle coverage, such as missing tools for creating transactions or managing wallets, but agents can work around this for most workflows.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    F
    maintenance
    Implements the Model Context Protocol to allow AI models to access and interact with blockchain data, including reading contract states, retrieving events, and accessing transaction information across various networks.
    10
    106 npm
    79
    MIT
  • A
    license
    B
    quality
    D
    maintenance
    A Model Context Protocol server that enables querying Bitcoin blockchain data, including address information, transaction details, mempool statistics, and ordinals/runes data through the Satstream API.
    37
    MIT
  • A
    license
    B
    quality
    D
    maintenance
    A Model Context Protocol server that provides real-time Bitcoin blockchain and mempool data to AI clients, allowing access to comprehensive Bitcoin network information through various data tools.
    31
    6 npm
    5
    MIT