mcp-resource-subscribe-test
mcp-resource-subscribe-test
Minimaler MCP-Streamable-HTTP-Server zum Testen, ob MCP-Clients resources/subscribe und notifications/resources/updated korrekt verarbeiten.
Dieses Repository dient als reproduzierbares Problem- / Kompatibilitätslabor für CLI-KI-Agenten wie Codex CLI, Gemini CLI, OpenCode, GitHub Copilot CLI, Claude Code, Goose und Crush.
Zweck
Der Server stellt eine feste MCP-Ressource bereit:
test://review/statusAnfänglicher Inhalt:
status: pending
version: 1
message: Waiting for simulated review result.Nachdem ein Client die Ressource abonniert hat, wartet der Server für MCP_TEST_UPDATE_DELAY_SECONDS, ändert die Ressource und sendet:
{
"method": "notifications/resources/updated",
"params": {
"uri": "test://review/status"
}
}Aktualisierter Inhalt:
status: reviewed
version: 2
message: Simulated review result is now available.Related MCP server: mcp-hello-world
Warum Resources/Subscribe statt Tools/Call
tools/call ist nützlich für explizite Aktionen, aber viele Agenten-Workflows hängen von Kontext ab, der sich nach der ursprünglichen Anfrage ändert. Das Abfragen (Polling) jeder Quelle ist laut und client-spezifisch. MCP-Ressourcen-Abonnements bieten Clients eine protokollbasierte Möglichkeit zu erfahren, dass sich ein bekanntes Kontextobjekt geändert hat und neu gelesen werden sollte.
Beispiele, bei denen das Abonnement-Verhalten wichtig ist:
Copilot-Prüfergebnis
PR-Review-Thread
CI-Status
Codecov-Kommentar
GitHub-Issue-Diskussion
lokales Build-/Testergebnis
Dieser Testserver konzentriert sich darauf, ob der Client eine Ressourcenaktualisierung bemerkt, resources/read erneut ausführt und den neuen Inhalt im Agenten-Loop / Modellkontext widerspiegelt.
Start
docker compose up --buildMCP-URL:
http://127.0.0.1:8089/mcpFür die lokale Entwicklung:
npm install
npm run devKonfiguration
Umgebungsvariable | Standard |
|
|
|
|
|
|
|
|
|
|
|
|
Wenn MCP_TEST_SEND_LIST_CHANGED=true ist, sendet der Server nach dem simulierten Update auch notifications/resources/list_changed.
Erwartetes Client-Verhalten
Ein idealer MCP-Client sollte diesem Ablauf folgen:
initialize
↓
resources/list
↓
resources/read test://review/status
↓
resources/subscribe test://review/status
↓
receive notifications/resources/updated
↓
resources/read test://review/status again
↓
reflect updated status: reviewed in agent contextServer-Fähigkeiten
Die Initialisierungsantwort kündigt Folgendes an:
{
"resources": {
"subscribe": true,
"listChanged": true
}
}Implementierte MCP-Nachrichten
initializeresources/listresources/readresources/subscriberesources/unsubscribenotifications/resources/updatednotifications/resources/list_changedwennMCP_TEST_SEND_LIST_CHANGED=true
Es sind keine Tools implementiert.
Protokolle
Der Server protokolliert jede wichtige Nachricht, damit das Client-Verhalten objektiv überprüft werden kann:
[initialize] client connected
[resources/list] requested
[resources/read] uri=test://review/status version=1
[resources/subscribe] uri=test://review/status
[resource/update] uri=test://review/status version=2
[notification/send] notifications/resources/updated uri=test://review/status
[resources/read] uri=test://review/status version=2
[resources/unsubscribe] uri=test://review/statusDer wichtigste Nachweis für die Unterstützung von Ressourcen-Abonnements ist:
resources/subscribe was received
notification was sent
resources/read was received again after the notificationTests
npm testDie Testsuite überprüft:
resources/listgibttest://review/statuszurückanfängliches
resources/readgibt Version 1 zurückresources/subscribelöst ein internes Update auf Version 2 ausnotifications/resources/updatedwird empfangenaktualisiertes
resources/readgibt Version 2 zurück
Hinweise zur Client-Kompatibilität
Codex CLI
MCP-Verbindung:
Ruft es
resources/listauf?Ruft es
resources/readauf?Ruft es
resources/subscribeauf?Empfängt es
notifications/resources/updated?Liest es die Ressource nach der Aktualisierung erneut?
Hinweise:
Gemini CLI
MCP-Verbindung:
Ruft es
resources/listauf?Ruft es
resources/readauf?Ruft es
resources/subscribeauf?Empfängt es
notifications/resources/updated?Liest es die Ressource nach der Aktualisierung erneut?
Hinweise:
OpenCode
MCP-Verbindung:
Ruft es
resources/listauf?Ruft es
resources/readauf?Ruft es
resources/subscribeauf?Empfängt es
notifications/resources/updated?Liest es die Ressource nach der Aktualisierung erneut?
Hinweise:
GitHub Copilot CLI
MCP-Verbindung:
Ruft es
resources/listauf?Ruft es
resources/readauf?Ruft es
resources/subscribeauf?Empfängt es
notifications/resources/updated?Liest es die Ressource nach der Aktualisierung erneut?
Hinweise:
Claude Code
MCP-Verbindung:
Ruft es
resources/listauf?Ruft es
resources/readauf?Ruft es
resources/subscribeauf?Empfängt es
notifications/resources/updated?Liest es die Ressource nach der Aktualisierung erneut?
Hinweise:
Goose
MCP-Verbindung:
Ruft es
resources/listauf?Ruft es
resources/readauf?Ruft es
resources/subscribeauf?Empfängt es
notifications/resources/updated?Liest es die Ressource nach der Aktualisierung erneut?
Hinweise:
Crush
MCP-Verbindung:
Ruft es
resources/listauf?Ruft es
resources/readauf?Ruft es
resources/subscribeauf?Empfängt es
notifications/resources/updated?Liest es die Ressource nach der Aktualisierung erneut?
Hinweise:
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseCqualityDmaintenanceA simple server implementing the Model Context Protocol (MCP) that echoes messages back, designed for testing MCP clients.12MIT
- Alicense-qualityBmaintenanceA minimal MCP server mock for testing, providing echo, debug, and greeting resources to simulate MCP interactions.20,48022MIT
- Flicense-qualityCmaintenanceMinimal MCP server for testing SkyStage's self-auth auto-detection feature. It includes tools like ping, echo, server_info, and read_secret, and uses a mock OAuth provider for login.
- Flicense-qualityDmaintenanceA simple MCP server with OAuth 2.0 authentication for testing OAuth support in mcp-cli.
Related MCP Connectors
MCP server wrapping the Tesla Fleet API and TeslaMate API
A basic MCP server to operate on the Postman API.
MCP (Model Context Protocol) server for Appwrite
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/scottlz0310/mcp-resource-subscriber'
If you have feedback or need assistance with the MCP directory API, please join our Discord server