Skip to main content
McpEssentials.Nats is specified and is not in this repository yet.
Edge / IoT / already-on-NATS hosts. JetStream Key/Value holds the canonical record. Core NATS subject mcp.essentials.task.input wakes waiting ElicitAsync callers.

When it ships

The host already runs NATS and wants KV plus a native subject instead of a database plus a separate bus.

Until then

Redis pub/sub is the shipped native channel on NotifyingMcpTaskStoreBase.

Intended how-to

1

Add the package

Add McpEssentials.Nats and a NATS connection.
2

Put the row in KV

Each StoredMcpTask in a JetStream KV bucket keyed by task id, including OwnerUserId.
3

Register the store

Singleton, same current-user factory as Authenticated tasks.
4

Publish on resolve

After a successful resolve, publish task id plus request id on mcp.essentials.task.input. Subscribers raise InputResponseReceived.

TTL

KV entry TTL from DiscardAfter (CreatedAt + 2×TimeToLive).

Redis

Shipped native pub/sub plus PEXPIREAT.

PostgreSQL

Shipped native LISTEN / NOTIFY on Npgsql.

Stores

Pick a backing store by the engine you already run.

Authenticated tasks

Identity factory, isolation rules, and the in-memory store.