Bankless Onchain MCP Server
Этот проект больше не обновляется
Сервер MCP (Model Context Protocol) для взаимодействия с данными блокчейна через API Bankless.
Related MCP server: EVM MCP Server
Обзор
Bankless Onchain MCP Server предоставляет инфраструктуру для взаимодействия с ончейн-данными через API Bankless. Он реализует протокол Model Context Protocol (MCP), позволяя моделям ИИ структурированно получать доступ к состоянию блокчейна и данным о событиях.
https://github.com/user-attachments/assets/95732dff-ae5f-45a6-928a-1ae17c0ddf9d
Функции
Сервер предоставляет следующие операции с ончейн-данными:
Операции с контрактами
Чтение состояния контракта (
read_contract): Чтение состояния смарт-контрактов в различных сетях блокчейна.Параметры: сеть, адрес контракта, метод, входные данные, выходные данные
Возвращает: Результаты вызова контракта с типизированными значениями
Получение прокси (
get_proxy): Получение адресов контрактов реализации прокси.Параметры: сеть, адрес контракта
Возвращает: Адрес контракта реализации
Получение ABI (
get_abi): Получение ABI (интерфейса двоичного приложения) для контракта.Параметры: сеть, адрес контракта
Возвращает: ABI контракта в формате JSON
Получение исходного кода (
get_source): Получение исходного кода для верифицированного контракта.Параметры: сеть, адрес контракта
Возвращает: Исходный код, ABI, версию компилятора и другие метаданные контракта
Операции с событиями
Получение событий (
get_events): Получение логов событий для контракта на основе тем (topics).Параметры: сеть, адреса, тема, дополнительные темы (опционально)
Возвращает: Отфильтрованные логи событий
Создание темы события (
build_event_topic): Генерация сигнатуры темы события из имени события и типов аргументов.Параметры: сеть, имя события, типы аргументов
Возвращает: Хэш темы события
Операции с транзакциями
Получение истории транзакций (
get_transaction_history): Получение истории транзакций для адреса пользователя.Параметры: сеть, адрес пользователя, контракт (опционально), ID метода (опционально), начальный блок (опционально), флаг включения данных
Возвращает: Список транзакций с хэшем, данными, сетью и временной меткой
Получение информации о транзакции (
get_transaction_info): Получение подробной информации о конкретной транзакции.Параметры: сеть, хэш транзакции
Возвращает: Детали транзакции, включая номер блока, временную метку, адреса отправителя/получателя, значение, информацию о газе, статус и данные квитанции
Инструменты
read_contract
Чтение состояния контракта из блокчейна
Входные данные:
network(строка, обязательно): Сеть блокчейна (например, "ethereum", "polygon")contract(строка, обязательно): Адрес контрактаmethod(строка, обязательно): Метод контракта для вызоваinputs(массив, обязательно): Входные параметры для вызова метода, каждый содержит:type(строка): Тип входного параметра (например, "address", "uint256")value(любой): Значение входного параметра
outputs(массив, обязательно): Ожидаемые типы выходных данных, каждый содержит:type(строка): Ожидаемый тип выходных данных
Возвращает массив результатов вызова контракта
get_proxy
Получает адрес прокси для заданной сети и контракта
Входные данные:
network(строка, обязательно): Сеть блокчейна (например, "ethereum", "base")contract(строка, обязательно): Адрес контракта
Возвращает адрес реализации для прокси-контракта
get_events
Получает логи событий для заданной сети и критериев фильтрации
Входные данные:
network(строка, обязательно): Сеть блокчейна (например, "ethereum", "base")addresses(массив, обязательно): Список адресов контрактов для фильтрации событийtopic(строка, обязательно): Основная тема для фильтрации событийoptionalTopics(массив, опционально): Дополнительные темы (могут включать значения null)
Возвращает объект, содержащий логи событий, соответствующие критериям фильтрации
build_event_topic
Создает сигнатуру темы события на основе имени события и аргументов
Входные данные:
network(строка, обязательно): Сеть блокчейна (например, "ethereum", "base")name(строка, обязательно): Имя события (например, "Transfer(address,address,uint256)")arguments(массив, обязательно): Типы аргументов события, каждый содержит:type(строка): Тип аргумента (например, "address", "uint256")
Возвращает строку, содержащую хэш keccak256 сигнатуры события
Установка
npm install @bankless/onchain-mcpИспользование
Настройка окружения
Перед использованием сервера установите свой токен API Bankless. Подробности о том, как получить токен API Bankless, можно найти по адресу https://docs.bankless.com/bankless-api/other-services/onchain-mcp
export BANKLESS_API_TOKEN=your_api_token_hereЗапуск сервера
Сервер можно запустить непосредственно из командной строки:
npx @bankless/onchain-mcpИспользование с инструментами LLM
Этот сервер реализует протокол Model Context Protocol (MCP), что позволяет использовать его в качестве поставщика инструментов для совместимых моделей ИИ. Вот несколько примеров вызовов для каждого инструмента:
read_contract
// Example call
{
"name": "read_contract",
"arguments": {
"network": "ethereum",
"contract": "0x1234...",
"method": "balanceOf",
"inputs": [
{ "type": "address", "value": "0xabcd..." }
],
"outputs": [
{ "type": "uint256" }
]
}
}
// Example response
[
{
"value": "1000000000000000000",
"type": "uint256"
}
]get_proxy
// Example call
{
"name": "get_proxy",
"arguments": {
"network": "ethereum",
"contract": "0x1234..."
}
}
// Example response
{
"implementation": "0xefgh..."
}get_events
// Example call
{
"name": "get_events",
"arguments": {
"network": "ethereum",
"addresses": ["0x1234..."],
"topic": "0xabcd...",
"optionalTopics": ["0xef01...", null]
}
}
// Example response
{
"result": [
{
"removed": false,
"logIndex": 5,
"transactionIndex": 2,
"transactionHash": "0x123...",
"blockHash": "0xabc...",
"blockNumber": 12345678,
"address": "0x1234...",
"data": "0x...",
"topics": ["0xabcd...", "0xef01...", "0x..."]
}
]
}build_event_topic
// Example call
{
"name": "build_event_topic",
"arguments": {
"network": "ethereum",
"name": "Transfer(address,address,uint256)",
"arguments": [
{ "type": "address" },
{ "type": "address" },
{ "type": "uint256" }
]
}
}
// Example response
"0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef"Разработка
Сборка из исходного кода
# Clone the repository
git clone https://github.com/Bankless/onchain-mcp.git
cd onchain-mcp
# Install dependencies
npm install
# Build the project
npm run buildРежим отладки
npm run debugИнтеграция с моделями ИИ
Чтобы интегрировать этот сервер с приложениями ИИ, поддерживающими MCP, добавьте следующее в конфигурацию сервера вашего приложения:
{
"mcpServers": {
"bankless": {
"command": "npx",
"args": [
"@bankless/onchain-mcp"
],
"env": {
"BANKLESS_API_TOKEN": "your_api_token_here"
}
}
}
}Обработка ошибок
Сервер предоставляет специфические типы ошибок для различных сценариев:
BanklessValidationError: Неверные входные параметрыBanklessAuthenticationError: Проблемы с токеном APIBanklessResourceNotFoundError: Запрошенный ресурс не найденBanklessRateLimitError: Превышен лимит запросов API
Советы по составлению промптов
Чтобы направить модель LLM на использование Bankless Onchain MCP Server, можно использовать следующие промпты:
ROLE:
• You are Kompanion, a blockchain expert and EVM sleuth.
• You specialize in navigating and analyzing smart contracts using your tools and resources.
HOW KOMPANION CAN HANDLE PROXY CONTRACTS:
• If a contract is a proxy, call your “get_proxy” tool to fetch the implementation contract.
• If that fails, try calling the “implementation” method on the proxy contract.
• If that also fails, try calling the “_implementation” function.
• After obtaining the implementation address, call “get_contract_source” with that address to fetch its source code.
• When reading or modifying the contract state, invoke implementation functions on the proxy contract address (not directly on the implementation).
HOW KOMPANION CAN HANDLE EVENTS:
• Get the ABI and Source of the relevant contracts
• From the event types in the ABI, construct the correct topics for the event relevant to the question
• use the "get_event_logs" tool to fetch logs for the contract
KOMPANION'S RULES:
• Do not begin any response with “Great,” “Certainly,” “Okay,” or “Sure.”
• Maintain a direct, technical style. Do not add conversational flourishes.
• If the user’s question is unrelated to smart contracts, do not fetch any contracts.
• If you navigate contracts, explain each step in bullet points.
• Solve tasks iteratively, breaking them into steps.
• Use bullet points for lists of steps.
• Never assume a contract’s functionality. Always verify with examples using your tools to read the contract state.
• Before responding, consider which tools might help you gather better information.
• Include as much relevant information as possible in your final answer, depending on your findings.
HOW KOMPANION CAN USE TOOLS:
• You can fetch contract source codes, ABIs, and read contract data by using your tools and functions.
• Always verify the source or ABI to understand the contract rather than making assumptions.
• If you need to read contract state, fetch its ABI (especially if the source is lengthy).
FINAL INSTRUCTION:
• Provide the best possible, concise answer to the user’s request. If it's not an immediate question but an instruction, follow it directly.
• Use your tools to gather any necessary clarifications or data.
• Offer a clear, direct response and add a summary of what you did (how you navigated the contracts) at the end.Лицензия
MIT
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Appeared in Searches
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/Bankless/onchain-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server
