Bitcoin Stratigraphy MCP
oficialUm hub de notário de IA de nível empresarial, protegido por L402, e servidor de dados MCP que fornece telemetria termodinâmica do Bitcoin e ancoragem de estado OpenTimestamps.
O que você pode fazer com Bitcoin Stratigraphy MCP?
- Descubra dados de estratigrafia indexados — Peça à sua IA para chamar
stratigraphy.listpara ver datas, alturas, limites e métricas disponíveis. - Liste operações de prova — Use
proof.listpara verificar os esquemas suportados de notarização e verificação antes de fazer chamadas pagas. - Solicite lotes de notarização — Peça um desafio
proof.notarizecom um lote L402 de 100 chamadas e, em seguida, pague via Lightning para ancorar um hash no Bitcoin. - Execute clientes sandbox gratuitos — Execute os exemplos Node ou Python sem carteira para testar a conectividade MCP sem assinar ou pagar.
- Construa um agente LangChain ReAct — Configure um agente somente com ferramentas gratuitas que consulte estratigrafia e metadados de prova usando o adaptador MCP documentado.
Servidor MCP hospedado
npx add-mcp 'https://bitcoin-stratigraphy-dashboard.replit.app/mcp'Instala no Claude Code, Codex, Cursor e outros
Documentação
Bitcoin Stratigraphy MCP — Distribuição para Desenvolvedores
Versão: 1.1.0 · Nome no registro MCP: crstrogish/bitcoin-stratigraphy
Um repositório de integração autônomo, com foco remoto, para o mecanismo Bitcoin Stratigraphy MCP: metadados de registro, contratos OpenAPI, clientes sem dependências e exemplos nativos de agentes para frameworks. Não é necessário workspace Replit, carteira, chave de API ou conta de provedor de modelo para o sandbox gratuito.
Escopo e status de segurança
Este pacote conecta-se ao mecanismo hospedado; ele não contém nem afirma executar o servidor completo de liquidação offline. Os códigos-fonte do cliente podem ser executados localmente contra o serviço ao vivo ou um endpoint MCP compatível operado de forma independente. Não há aliases de workspace, credenciais embutidas, chaves de assinatura privadas, estado do operador ou dependência de um repositório pai.
A execução com LangChain é suportada. O código-fonte do LlamaIndex é preservado, mas a instalação de dependências e a execução estão temporariamente indisponíveis: sua dependência NLTK é afetada por GHSA-8mgp-746c-j5xp. O arquivo de requisitos do LlamaIndex intencionalmente não instala nada. Não ignore verificações de segurança nem trate o selo como uma afirmação de execução suportada. Restaure a instalação somente após auditar uma árvore de dependências segura e completa.
Conecte-se ao mecanismo MCP ao vivo
| Superfície | URL |
|---|---|
| MCP HTTP Streamable | https://bitcoin-stratigraphy-dashboard.replit.app/mcp |
| Portal do desenvolvedor | https://bitcoin-stratigraphy-dashboard.replit.app/docs |
| OpenAPI ao vivo | https://bitcoin-stratigraphy-dashboard.replit.app/openapi.json |
Use a URL MCP em qualquer cliente HTTP Streamable. Importe mcp.json onde seu cliente suportar configuração MCP baseada em URL; alguns hosts exigem um tipo de transporte explícito em seu próprio formato de configuração. smithery.yaml é metadado canônico de registro remoto, não uma receita para iniciar um servidor local.
O servidor anuncia 15 capacidades canônicas. initialize e tools/list
são operações gratuitas de descoberta de protocolo. Exatamente duas execuções
de ferramentas são gratuitas:
| Ferramenta | Argumentos | Finalidade |
|---|---|---|
stratigraphy.list | {} | Descobrir datas/alturas indexadas, limites e métricas disponíveis |
proof.list | {} | Listar operações de prova suportadas e metadados de esquema |
A descoberta de catálogo não é autorização de pagamento. Outras ferramentas canônicas exigem acesso pago; consulte os esquemas ao vivo e os termos de pagamento antes de autorizar compras.
Início rápido no sandbox gratuito — sem carteira
Node.js 22 ou mais recente
A partir da raiz deste repositório, sem instalação de pacotes:
node examples/free-sandbox.mjs
Isso negocia o MCP, envia a notificação de inicialização e então chama apenas
stratigraphy.list e proof.list. Não assina, paga, anexa credenciais nem faz
solicitações a LLMs. Falha em vez de pagar se uma chamada gratuita retornar
HTTP 402.
Para usar seu próprio endpoint compatível:
node examples/free-sandbox.mjs --url http://127.0.0.1:5000/mcp
Isso é uma conexão de cliente, não um comando para iniciar o mecanismo de produção.
Python 3.11 ou mais recente
O cliente incluído funciona com a biblioteca padrão; nenhuma instalação de framework é necessária:
python -m examples.free_sandbox
Equivalente em Python para copiar e colar:
from sdk.python.client import BitcoinStratigraphyClient
client = BitcoinStratigraphyClient()
print(client.call_tool("stratigraphy.list", {}))
print(client.call_tool("proof.list", {}))
Execute o código a partir da raiz do repositório para que o namespace
sdk seja importável. A verificação TLS permanece habilitada. Se sua
organização usar uma CA privada, configure seu armazenamento de certificados
confiáveis; não desabilite a verificação.
L402: Lotes de Macro-Macaroon com 100 chamadas
Capacidades pagas usam credenciais com escopo de ferramenta. Para solicitar um lote, inclua:
X-L402-Batch-Size: 100
Por exemplo, esta solicitação pede um desafio de lote de notarização; ela não paga uma fatura:
curl --include --request POST \
'https://bitcoin-stratigraphy-dashboard.replit.app/mcp' \
--header 'Content-Type: application/json' \
--header 'Accept: application/json, text/event-stream' \
--header 'X-L402-Batch-Size: 100' \
--data '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"proof.notarize","arguments":{"hash":"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"}}}'
- Inspecione o HTTP 402, o desafio L402
WWW-Authenticate, o valor da fatura, a expiração e o escopo exato da ferramenta. - Pague somente por meio de uma carteira/cliente Lightning confiável com limites de gastos explícitos. Verifique se a prova de liquidação corresponde ao hash de pagamento desafiado.
- Repita a mesma chamada de ferramenta com o cabeçalho do lote e:
Authorization: L402 <macaroon>:<preimage>
X-L402-Batch-Size: 100
A cotação registrada de notarização é de 250 sats/chamada × 100 = 25.000 sats.
A fatura ao vivo é autoritativa; exemplos de preço-alvo do registro não são uma
garantia de preço. Um passe proof.notarize não desbloqueia outras ferramentas
pagas. Orçamentos, expiração, revogação e advertências herdadas ainda se aplicam
a cada uso. A atenuação delega ou restringe o escopo; ela não redefine o
orçamento pai.
Adaptadores nativos de framework não são carteiras. Forneça uma credencial
pré-paga via L402_AUTHORIZATION, ou um proxy de carteira Streamable HTTP de loopback
confiável via L402_PROXY_URL com limites de gastos explícitos. Não faça commit de
credenciais nem de segredos do provedor de modelo. Os callbacks de pagamento
SDK de uma única chamada, mais antigos, não são implementações automáticas de
loteamento Macro-Macaroon.
LangChain: loops nativos MCP e ReAct
Use um ambiente Python de consumidor separado, não um ambiente MCP 1.x mais antigo:
python -m pip install -r cookbooks/requirements-langchain.txt
python cookbooks/langchain_agent.py
O modo padrão descobre apenas ferramentas. Para optar por um LLM e notarização
paga, configure sua chave de provedor e uma credencial de lote proof.notarize
pré-paga por meio do seu gerenciador de segredos e execute:
python cookbooks/langchain_agent.py --run
Loop ReAct somente com ferramentas gratuitas para copiar e colar (chamadas MCP são gratuitas; o uso do modelo é cobrado pelo seu provedor de modelo):
import asyncio
from fastmcp.client import Client
from fastmcp.client.transports import StreamableHttpTransport
from langchain.mcp import MCPAdapter
from langchain.agents import create_agent
from langchain_openai import ChatOpenAI
async def main():
transport = StreamableHttpTransport(
url="https://bitcoin-stratigraphy-dashboard.replit.app/mcp"
)
client = Client(transport, mode="legacy", timeout=30)
async with MCPAdapter(client) as adapter:
tools = await adapter.list_tools()
free = [
t.model_copy(update={"name": t.name.replace(".", "_")})
for t in tools if t.name in {"stratigraphy.list", "proof.list"}
]
if len(free) != 2:
raise RuntimeError("Expected both free sandbox capabilities")
agent = create_agent(
model=ChatOpenAI(model="gpt-4.1-mini", temperature=0),
tools=free,
system_prompt="Use only these discovery tools. Report actual results.",
)
result = await agent.ainvoke(
{"messages": [{"role": "user", "content":
"List indexed stratigraphy bounds and supported proof operations."}]}
)
print(result["messages"][-1].content)
asyncio.run(main())
create_agent implementa o loop ReAct atual modelo → ferramenta → observação.
Aliases com sublinhado atendem às regras de nomenclatura do provedor de modelo;
os wrappers mantêm os nomes originais com pontos das ferramentas remotas.
LlamaIndex: exemplo de agente nativo preservado
Somente código-fonte até que a suspensão de segurança de dependências seja levantada. O exemplo a seguir para copiar e colar documenta o formato de API suportado para um ambiente auditado no futuro; não é uma instrução para instalar dependências vulneráveis agora. O exemplo completo de notarização paga está em cookbooks/llamaindex_agent.py.
import asyncio
from llama_index.tools.mcp import BasicMCPClient, McpToolSpec
from llama_index.core.agent.workflow import ReActAgent
from llama_index.llms.openai import OpenAI
async def main():
client = BasicMCPClient(
"https://bitcoin-stratigraphy-dashboard.replit.app/mcp", timeout=30
)
try:
tools = await McpToolSpec(client=client).to_tool_list_async()
free = [t for t in tools if t.metadata.name in
{"stratigraphy.list", "proof.list"}]
if len(free) != 2:
raise RuntimeError("Expected both free sandbox capabilities")
for tool in free:
tool.metadata.name = tool.metadata.name.replace(".", "_")
agent = ReActAgent(
tools=free,
llm=OpenAI(model="gpt-4.1-mini", temperature=0),
system_prompt="Use only the discovery tools. Report actual results.",
timeout=90,
)
response = await agent.run(
user_msg="List indexed stratigraphy bounds and supported proof operations."
)
print(str(response))
finally:
await client.http_client.aclose()
asyncio.run(main())
Credenciais e cobranças de modelo são separadas dos pagamentos MCP.
SDK TypeScript
sdk/typescript contém tanto o cliente REST quanto os códigos-fonte do cliente MCP, configurações de compilador independentes, testes locais e seu próprio manifesto de pacote. A versão 0.1.0 do SDK é independente da versão 1.1.0 do registro.
cd sdk/typescript
npm install
npm test
npm run build
O manifesto raiz do pacote mantém a identidade canônica do registro MCP e a versão da versão, mas substitui scripts/dependências de monorepo por comandos de distribuição portáveis. Não é o manifesto de orquestração do workspace privado.
Conteúdo do repositório e verificações de exportação
README.md Distribution and operational guide
package.json Portable MCP metadata and sandbox/test commands
smithery.yaml Canonical remote registration manifest
mcp.json Remote MCP client configuration
openapi.yaml Canonical self-contained REST/OpenAPI contract
openapi.json JSON rendering of the same canonical contract
LICENSE MIT license
cookbooks/ Native framework sources, requirements, and offline tests
sdk/typescript/ TypeScript REST/MCP clients and standalone package
sdk/python/ Python REST/MCP clients and offline tests
examples/ Wallet-free Node/Python sandbox entrypoints
test/ Node sandbox transport and safety tests
scripts/verify-export.mjs Portable structure, import, and reference checks
npm run verify
npm test
python -m unittest discover -s cookbooks -p 'test_*.py'
python -m unittest discover -s sdk/python -p 'test_*.py'
verify verifica importações relativas de código-fonte e referências a
arquivos Markdown, caminhos de pacotes de scripts e SDK, sintaxe JSON e ausência
de aliases de dependência de workspace. Compile o Python e construa o SDK como
verificações de sintaxe adicionais. Os testes são offline, a menos que você
execute explicitamente um sandbox ou um ponto de entrada de agente.
Limites operacionais
- Alturas de estratigrafia indexadas são um índice documentado de dados diários, não a ponta ao vivo do Bitcoin nem a proveniência nativa por bloco.
- A aceitação do calendário OTS não é confirmação do Bitcoin. Preserve o recibo destacado e verifique seu digest correspondente e a atestação Bitcoin separadamente.
- Assinaturas de ancoragem, provas ZK e recibos OTS estabelecem fatos diferentes; não descreva um como o outro.
- Os SDKs param em erros de pagamento. Não repita chamadas pagas às cegas nem registre provas de pagamento. Armazene credenciais em um gerenciador de segredos e revise gastos e escopo de ferramentas antes de habilitar um agente.
- O contrato OpenAPI cobre REST; o
tools/listMCP ao vivo descreve esquemas MCP executáveis. A versão do esquema OpenAPI e a versão do SDK não precisam corresponder à versão do registro. - Audite dependências opcionais de frameworks antes de instalá-las ou atualizá-las. Nenhuma carteira local, assinatura ou credenciais de liquidação são distribuídas.
Licença
MIT. Consulte LICENSE. Frameworks e dependências opcionais mantêm suas próprias licenças e termos.
🤖 Integração CrewAI
O Bitcoin Stratigraphy Data Engine suporta nativamente o MCPServerAdapter do CrewAI. Insira este trecho em seu fluxo de trabalho para equipar instantaneamente seus agentes com ferramentas termodinâmicas e ancoragem de estado OpenTimestamps:
pip install crewai-tools[mcp]
Consulte crewai_cookbook.py para o script completo de execução do agente.