Skip to content

feat: add bitcoin-mcp ToolServer and Bitcoin SRE Agent#1558

Open
Bortlesboat wants to merge 1 commit intokagent-dev:mainfrom
Bortlesboat:add-bitcoin-mcp-toolserver
Open

feat: add bitcoin-mcp ToolServer and Bitcoin SRE Agent#1558
Bortlesboat wants to merge 1 commit intokagent-dev:mainfrom
Bortlesboat:add-bitcoin-mcp-toolserver

Conversation

@Bortlesboat
Copy link
Copy Markdown

Summary

Add bitcoin-mcp as a contrib ToolServer and a Bitcoin SRE Agent definition.

ToolServer (contrib/tools/bitcoin-mcp.toolserver.yaml):

  • 49 tools for Bitcoin network analysis (fee estimation, mempool analysis, block inspection, transaction decoding, mining stats, address lookups, PSBT security)
  • Zero-config: works with a local Bitcoin Core node or the free Satoshi API
  • Available on PyPI: pip install bitcoin-mcp / uvx bitcoin-mcp

Bitcoin SRE Agent (contrib/tools/bitcoin-mcp/bitcoin-sre-agent.yaml):

  • Incident response agent for Bitcoin infrastructure monitoring
  • Detailed system prompt with incident response protocol (detect → investigate → diagnose → recommend)
  • Tool selection guide, fee interpretation rules, mempool congestion thresholds
  • Safety guidelines (never broadcast without operator approval)
  • A2A skill definition for agent discovery

Why

Bitcoin node operators need 24/7 monitoring. This agent demonstrates kagent's value for financial infrastructure operations — a domain where AI agents can save real time and prevent real incidents.

bitcoin-mcp has 116 tests, 950+ PyPI downloads/month, and is listed on the official MCP Registry.

Test plan

  • ToolServer YAML follows context7.mcp.yaml pattern exactly
  • Agent YAML uses v1alpha2 schema with proper tool references
  • uvx bitcoin-mcp installs and runs without configuration

Add bitcoin-mcp as a contrib ToolServer for Bitcoin network analysis
(49 tools including fee estimation, mempool analysis, block inspection,
transaction decoding, and mining stats).

Also includes a Bitcoin SRE Agent definition with a detailed system
prompt covering incident response protocols, tool selection guides,
fee interpretation rules, and safety guidelines.

bitcoin-mcp is available on PyPI (pip install bitcoin-mcp) and works
with zero configuration via the free Satoshi API.
Copilot AI review requested due to automatic review settings March 27, 2026 00:24
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds a new contributed MCP ToolServer for bitcoin-mcp and an accompanying “Bitcoin SRE” Agent definition so kagent users can run Bitcoin network/node diagnostics and incident-response workflows via MCP tools.

Changes:

  • Introduces a ToolServer manifest that runs bitcoin-mcp via uvx (stdio transport).
  • Introduces a “Bitcoin SRE Agent” manifest with an incident-response system prompt and A2A skill metadata.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 3 comments.

File Description
contrib/tools/bitcoin-mcp/bitcoin-sre-agent.yaml Adds a Bitcoin SRE Agent definition and A2A skill metadata referencing the bitcoin-mcp toolserver.
contrib/tools/bitcoin-mcp.toolserver.yaml Adds a ToolServer definition to run the bitcoin-mcp MCP server via uvx.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +6 to +13
spec:
description: >-
Bitcoin infrastructure SRE agent for incident detection,
investigation, and response. Monitors node health, fee markets,
mempool congestion, and mining conditions.
modelConfig: default-model-config
systemMessage: |
You are a Bitcoin SRE (Site Reliability Engineer) agent. Your job is
Copy link

Copilot AI Mar 27, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This Agent manifest doesn’t follow the v1alpha2 Agent schema: v1alpha2 requires spec.type and then spec.declarative (or spec.byo) to hold fields like modelConfig, systemMessage, tools, and a2aConfig. With the current top-level spec.modelConfig/spec.systemMessage/spec.tools/spec.a2aConfig, the CRD validation should reject this resource due to unknown/missing required fields. Restructure the manifest to include spec.type: Declarative and move the declarative fields under spec.declarative: (similar to contrib/tools/k8sgpt-mcp-server/k8sgpt-agent.yaml).

Copilot uses AI. Check for mistakes.
tools:
- type: McpServer
mcpServer:
toolServer: bitcoin-mcp
Copy link

Copilot AI Mar 27, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The MCP tool reference format here doesn’t match the v1alpha2 Tool schema. mcpServer expects a typed reference (apiGroup, kind, name, optional namespace) to the tool provider resource, plus optional toolNames/requireApproval. toolServer: bitcoin-mcp is not a recognized field and should be replaced with a typed reference to the ToolServer resource (apiGroup/kind/name), optionally scoping to a subset of toolNames and/or using requireApproval for sensitive tools.

Suggested change
toolServer: bitcoin-mcp
apiGroup: kagent.dev
kind: ToolServer
name: bitcoin-mcp
namespace: kagent

Copilot uses AI. Check for mistakes.
apiVersion: kagent.dev/v1alpha1
kind: ToolServer
metadata:
name: bitcoin-mcp
Copy link

Copilot AI Mar 27, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This ToolServer is namespaced, but the manifest omits metadata.namespace while the agent hard-codes metadata.namespace: kagent. If users apply these manifests without -n kagent, the ToolServer will land in the default namespace and the agent in kagent, causing the agent’s tool reference to fail resolution. Consider adding metadata.namespace: kagent here (or removing the explicit namespace from the agent) so the two resources are consistently installable.

Suggested change
name: bitcoin-mcp
name: bitcoin-mcp
namespace: kagent

Copilot uses AI. Check for mistakes.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants