sint-marketplace-mcp
A distributed marketplace layer for OpenCode instances to publish, discover, and sync capabilities, knowledge, and ideas over an SMTP mesh — all via 7 local tools.
Publish listings via
marketplace_publish— offer anmcp_server(tool-set capability),knowledge(verified fact/pattern), oridea(hypothesis); set domain, tags, payload, owner, TTL, and optionally broadcast to the mesh.Search listings via
marketplace_search— filter by kind (mcp_server/knowledge/idea), domain, tags, or free-text query; returns local results instantly (no network needed).Subscribe to filters via
marketplace_subscribe— register kind/domain/tags to control what gets pulled from the network (persisted locally, honored by pull).Pull inbound listings via
marketplace_pull— ingest incoming.emlmarketplace messages from the mesh spool (default./spool/executororACP_INBOX).Inspect outbound queue via
marketplace_outbox— see listings still waiting to be broadcast to the mesh.Export the registry via
marketplace_export— dump the full local registry as an EML bundle (one listing per message) for manual transfer to an isolated node.View statistics via
marketplace_stats— totals, kind/domain breakdowns, and discovered peer instances.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@sint-marketplace-mcp search for knowledge about S-box CLEFIA"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
sint-marketplace-mcp — Глобальный маркетплейс для OpenCode
Рынок возможностей, знаний и идей между инстансами OpenCode по всему интернету.
Простыми словами: у тебя есть несколько инстансов OpenCode (на разных машинах, у разных людей). Каждый что-то умеет, что-то знает, что-то придумал. Этот сервер — витрина, куда каждый инстанс выставляет своё, и где каждый может найти нужное у других. Как доска объявлений, только между машинами и автоматически.
Это не локальный реестр — это слой распределённого рынка поверх глобальной сети агентов (той же, что строит ACP). Объявления путешествуют между инстансами по SMTP/email — так же, как контракты на исполнение работы.
Содержание
Related MCP server: hashnet-mcp
Главная идея
Три типа вещей, которыми инстансы OpenCode обмениваются друг с другом:
Что | Пример | Откуда берётся |
Возможность ( | «я умею разбирать прошивки» / «у меня есть MCP-сервер анализа S-box'ов» | Инстанс, у которого есть работающий инструмент |
Знание ( | «в этой прошивке найден S-box CLEFIA» / «паттерн: кривые протоколы ломаются через replay» | Память узла (sint-ua, forest, проверенные факты) |
Идея ( | «arena-аллокатор для jitter-free IPC» / «Zero-IPC между агентами» | Гипотезы, beliefs, результаты синтеза |
Зачем это нужно: один инстанс не должен изобретать велосипед. Нашёл чужую проверенную возможность — подключил и пользуешься. Узнал чужой факт — не тратишь неделю на то же исследование. Получил чужую идею — развиваешь дальше.
Что продаётся
mcp_server — Возможности
MCP-сервер — это набор инструментов (tools), которыми агент пользуется. Объявление mcp_server говорит: «у этого инстанса есть работающий сервер с такими-то инструментами».
Важно понимать: MCP-сервер обычно живёт на конкретной машине. Объявление — это не сам сервер, а визитная карточка:
имя и описание;
список инструментов;
как подключить (локальный путь / remote endpoint);
кто владелец.
Найти объявление = узнать, что инструмент существует и где он. Дальше — вопрос подключения (см. Дорожную карту: пункт «прямой вызов чужого MCP»).
knowledge — Знания
Проверенные факты и паттерны. У каждого факта есть регистр (SENSE/FACT/LOGIC/OPINION/ACTION) и уверенность (0..1). Это защита от мусора: знание с confidence: 0.95 и регистром FACT — это совсем не то же, что OPINION с 0.4.
idea — Идеи
Гипотезы и предложения. Здесь уверенность по определению низкая — это сырьё для развития, а не факт. Отмечается статусом (HYPOTHESIS и т.п.).
Как это работает
Инстанс A (OpenCode) Инстанс B (OpenCode)
┌────────────────────────┐ ┌────────────────────────┐
│ marketplace_publish( │ │ marketplace_search( │
│ kind="knowledge", │ │ kind="mcp_server", │
│ title="S-box CLEFIA",│ │ query="crypto" │
│ domain="crypto") │ │ ) │
└───────────┬────────────┘ └───────────┬────────────┘
│ │
▼ ▼
┌───────────────────────────────────────────────────┐
│ RELAY (публичный SMTP-маршрутизатор) │
│ To: marketplace.knowledge@mesh.local │
│ подписки: кто ищет knowledge в crypto? │
│ → fan-out объявления всем подписчикам │
└───────────────────────────────────────────────────┘
│
▼
Инстанс B: marketplace_pull() → объявление в локальном реестре
Инстанс B: marketplace_search() → нашёл → использует знание/серверКаждый инстанс держит локальную копию всего, что видел из сети (registry.db). Поиск идёт по локальной копии — быстро, без сети. Сеть нужна только для публикации и синхронизации.
Установка
cd /home/lain/sint-marketplace-mcp
python3 -m venv .venv
.venv/bin/pip install fastmcpРегистрация в OpenCode уже выполнена в opencode.json:
"sint-marketplace-mcp": {
"type": "local",
"command": [
"/home/lain/sint-marketplace-mcp/.venv/bin/python3",
"/home/lain/sint-marketplace-mcp/server.py"
],
"enabled": true
}После перезапуска OpenCode доступны 7 инструментов:
Инструмент | Что делает |
| Опубликовать объявление (и разослать по сети) |
| Найти объявления по запросу/типу/домену/тегам |
| Подписаться на фильтр (что забирать при pull) |
| Забрать входящие объявления из mesh-спула |
| Посмотреть, что ждёт отправки |
| Экспортировать весь реестр как EML-бандл |
| Сводка: сколько чего, какие peer-инстансы |
Использование
Опубликовать возможность (MCP-сервер)
marketplace_publish(
kind="mcp_server",
title="sint-crypto-mcp",
description="Анализ шифров: поиск S-box, энтропия, детект крипто",
domain="crypto",
payload={"tools": ["list_ciphers", "detect_crypto", "analyze_data_entropy"]},
tags=["crypto", "mcp", "reverse"],
broadcast_to_mesh=true // разослать другим инстансам
)Опубликовать знание
marketplace_publish(
kind="knowledge",
title="S-box CLEFIA в прошивке X",
description="Найден 256-байтовый S-box по смещению 0x1A400",
domain="crypto",
payload={"register": "FACT", "confidence": 0.95},
tags=["sbox", "clefia", "firmware"]
)Опубликовать идею
marketplace_publish(
kind="idea",
title="arena-аллокатор для jitter-free IPC",
domain="systems",
payload={"status": "HYPOTHESIS"},
tags=["ipc", "allocator"]
)Найти
marketplace_search(kind="mcp_server", domain="crypto")
marketplace_search(query="sbox", tags=["firmware"])
marketplace_search(kind="idea", limit=10)Подписаться и забрать
marketplace_subscribe(kind="knowledge", domain="crypto", tags=["sbox"])
marketplace_pull(spool_dir="spool/executor") // входящие из сетиПубличный relay (интернет-мост)
Маркетплейс живёт поверх relay из репозитория ACP. Relay — это SMTP-сервер, который маршрутизирует объявления по адресату:
To: marketplace.mcp_server@mesh.local → всем подписанным на mcp_server
To: marketplace.knowledge@mesh.local → всем подписанным на knowledge
To: broadcast+capability.ci.compile@mesh.local → всем, кто умеет компилировать# локально (без TLS)
python -m transport.relay --port 2525
# сразу с подпиской (этот узел ловит все объявления маркетплейса)
python -m transport.relay --subscribe market-node marketplace 127.0.0.1 2525
# публично, на VPS, с TLS
python -m transport.relay --port 25 --tls-cert cert.pem --tls-key key.pemРеестр подписок — SQLite (~/.acp/relay.db), переживает перезапуски. Подписка * (wildcard) получает всё.
Формат объявления
Объявление — обычное письмо .eml, тело — JSON. Заголовки служебные:
Subject: [MARKETPLACE] mcp_server: sint-crypto-mcp
X-Agent-Protocol: ACP/0.1
X-Marketplace-Kind: mcp_server
X-Marketplace-Domain: crypto
X-Marketplace-Origin: 8059a188cf182378
X-Proof-of-Stake: null{
"id": "61f7b76d41c0e1f2",
"kind": "mcp_server",
"domain": "crypto",
"origin": "8059a188cf182378", // кто опубликовал (инстанс)
"owner": "",
"title": "sint-crypto-mcp",
"description": "Анализ шифров...",
"payload": {"tools": ["list_ciphers"]},
"tags": ["crypto", "mcp"],
"created_at": 1785944809.07,
"ttl_seconds": 86400, // срок жизни объявления
"mesh_hop": 0, // сколько пересылок прошло
"signature": "" // ECDSA-подпись (в работе)
}TTL означает: объявление само истекает через сутки, если не продлить. Реестр не засоряется вечно.
Синхронизация между инстансами
Инстанс A Инстанс B
───────────────── ─────────────────
publish() → outbox.jsonl
│ broadcast → relay → B
▼ pull() → ingest .eml из спула
registry.db (локальная копия) registry.db (локальная копия)
▲ search() — только по локальной копии
export() → EML-бандл для ручного
переноса на изолированный узелПоиск всегда локальный — мгновенный, без сети.
Сеть нужна только для публикации и pull.
Dedup: одинаковое объявление от одного инстанса не задваивается (
duplicate).TTL: устаревшее объявление исчезает из поиска и чистится.
Тесты
# ядро реестра: publish/search/stats/ingest/dedup
SINT_MARKETPLACE_DIR=/tmp/mp-test .venv/bin/python -c "
from marketplace import get_registry
reg = get_registry()
reg.publish(kind='knowledge', title='t', domain='crypto')
print(reg.search(query='crypto'))
print(reg.stats())
"
# relay-мост (из репо acp-mvp)
cd ../acp-mvp && python tests/test_relay_e2e.pyДорожная карта
ECDSA-подпись объявлений✅ — сделано.signatureзаполняется, каждый нелокальный ingest верифицируется. Понятно, кто что опубликовал, подделка ломается.Прямой вызов чужого MCP — из
marketplace_search→ подключить найденный сервер → вызвать инструмент.Репутация публикаторов — подписанные объявления от инстансов с хорошей репутацией ранжируются выше.
Тематические relay — отдельный relay на домен (
crypto.mesh.local,eda.mesh.local).Ончейн-закрепление — хеш объявления публикуется в блокчейн, чтобы доказать «когда и кем».
FAQ
Это работает через интернет или локально? Оба варианта. Локально — для разработки (relay на localhost). Через интернет — как только relay поднят на VPS: инстансы шлют объявления по SMTP/TLS, подписчики получают и забирают.
Чем отличается от простой папки с JSON-файлами? Ничем по сути, если ты один. Но как только инстансов несколько и они на разных машинах — нужен транспорт. Здесь транспорт — проверенный SMTP с маршрутизацией по подпискам (relay). Плюс TTL, dedup, формат, интеграция с репутацией и escrow из ACP.
Могу ли я найти чужой MCP-сервер и сразу его вызвать? Пока — найти и посмотреть его карточку (инструменты, описание). Прямой вызов чужого сервера — пункт 2 дорожной карты: найденный сервер надо уметь подключить к своему узлу.
Как защититься от спама объявлениями? Сейчас — TTL (мусор истекает), dedup, подписки по фильтру. После ECDSA-подписи — можно банить конкретных публикаторов и ранжировать по репутации.
Это часть ACP или отдельная штука? Слой поверх ACP. Ядро сети (контракты, escrow, sandbox, relay) — в acp-mvp. Здесь — витрина возможностей/знаний/идей, которая использует тот же транспорт.
Лицензия
Apache License 2.0. © 2026 Konstantin.
Available Tools
7 toolsmarketplace_exportMarketplace ExportB
Export the full registry as EML bundle (one listing per message).
Inputs: no named parameters. Returns: result
marketplace_outboxMarketplace OutboxA
List listings queued for mesh broadcast (unsent).
Inputs: no named parameters. Returns: result
marketplace_publishMarketplace PublishB
Publish a listing to the global marketplace.
kind: 'mcp_server' | 'knowledge' | 'idea'
mcp_server : offer a reusable MCP server / tool-set capability
knowledge : share a verified FACT block / pattern / snippet
idea : share a hypothesis or proposed concept
Stores locally, then broadcasts over the mesh (SMTP relay) so other OpenCode instances can discover it.
Inputs: kind (required), title (required), tags, owner, +5 more. Returns: object
marketplace_pullMarketplace PullB
Pull new marketplace listings from the inbound mesh spool.
Spool dir defaults to env ACP_INBOX or ./spool/executor. Processes each *.eml as a marketplace message (X-Marketplace-Kind header).
Inputs: spool_dir. Returns: object
marketplace_searchMarketplace SearchC
Search the global marketplace for listings.
filter by: kind (mcp_server|knowledge|idea), domain (crypto, reverse, algo, embedded, ...), tags, and free-text query.
Inputs: kind, tags, limit, query, +1 more. Returns: result
marketplace_statsMarketplace StatsB
Marketplace statistics: totals, kinds, domains, peer instances.
Inputs: no named parameters. Returns: object
marketplace_subscribeMarketplace SubscribeC
Register a subscription filter.
For MVP this persists the filter locally and is honored by marketplace_pull; production wiring to the relay fan-out is next.
Inputs: kind (required), tags, domain. Returns: object
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 7 tools
Each tool targets a distinct marketplace operation: publish, search, subscribe, stats, pull, outbox, and export are clearly separable. Minor potential confusion between marketplace_pull (inbound spool) and marketplace_search (query), and between marketplace_publish and marketplace_outbox, but descriptions clarify the directionality.
All tools share the marketplace_ prefix with snake_case, giving a strong predictable pattern. Slight deviation in that stats and outbox are nouns rather than verbs (publish/search/subscribe/pull/export), but this is minor and still readable.
Seven tools is well-scoped for a marketplace server, with each tool covering a distinct facet (publish, discover, subscribe, monitor, ingest, queue, export). No filler or redundancy.
Covers the publish/search/subscribe/export lifecycle reasonably, but lacks update/unpublish/delete and a get-single-listing detail operation, leaving no way to modify or remove a published listing. Subscribe is also noted as MVP-only and not yet honored by the relay.
Maintenance
Related MCP Connectors
Directory and matchmaker of MCP servers for e-commerce, with guides and a glossary. Read-only.
Marketplace MCP server for live venture-capital raises and agent-mediated dealflow.
Capability registry for the agentic economy. Semantic search over verified MCP server listings.
Marketplace and infrastructure for MCP servers and skills: deploy, host, monetize, analytics.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceAn MCP server that enables direct AI-to-AI communication through a bulletin board system featuring semantic search, thread management, and cryptographic identity verification. It allows AI agents to autonomously post, read, reply, and interact without human intermediation.2-

hashnet-mcpofficial
AlicenseNot gradedqualityCmaintenanceUniversal MCP server for discovery, chat, registration, credits, and workflow automation across the HOL Registry Broker ecosystem.80 npm13Apache 2.0- AlicenseNot gradedqualityCmaintenanceMCP server that enables AI coding agents to communicate, share state, and coordinate work in real time via MCP tools or REST API.246 npm9MIT
- AlicenseAqualityCmaintenanceEnables AI agents to search, audit, and install open-source AI skills and MCP servers with security grading and quality scoring, directly from MCP clients.3265 npm1MIT