Skip to content

Tags

Tags

v0.7.0-beta+060fad6

Toggle v0.7.0-beta+060fad6's commit message

Unverified

This commit is not signed, but one or more authors requires that any commit attributed to them is signed.
fix(serve): answer tools/list from cache during the background refresh

After startup the proxy loads tools from the persistent cache, then the
background refresh calls `reset_cache_loaded_for_refresh`, which removes every
cache-loaded backend from `discovered_backends`. A `tools/list` arriving in
that window saw `has_undiscovered_backends() == true` and blocked on
`discover_pending_backends` until every backend had been spawned and listed -
exactly the wait the cache exists to avoid. With 9 backends that is 5-12 s per
proxy restart, long enough for a client's tools fetch to time out.

`tools/list` now asks `has_backends_without_tools()`: like
`has_undiscovered_backends`, but a backend whose tools are already registered
from the cache (Disconnected with non-empty `cached_tools`) does not force a
blocking discovery. Backends with no cache entry still do, so the
partial-cache case keeps working (`tools_list_discovers_backends_missing_
from_a_partial_cache` unchanged and passing). The refresh itself still runs in
the background and updates the list.

Measured (HTTP mode, 9 stdio backends): tools/list right after a restart went
from 5.4 s to 0.1-0.7 s.

Verified

This tag was signed with the committer’s verified signature.
avelino Avelino

v0.6.2-beta+b80eb8e

Toggle v0.6.2-beta+b80eb8e's commit message

Unverified

This commit is not signed, but one or more authors requires that any commit attributed to them is signed.
fix: clear clippy 1.99 double_must_use

async-trait 0.1.91 stamps #[must_use] with no message onto every async
trait method. Clippy 1.99 treats that as double_must_use because the
pinned boxed future is already must_use, and CI on stable has been red
since a9ebe8f. 0.1.92 stops emitting the attribute. The future stays
must_use through its type, which is the fix the lint asks for.

Workflow actions are pinned to full commit SHAs. rust-toolchain is the
v1 commit on master, with toolchain: stable passed explicitly, because
a SHA pin does not select the stable channel the way @stable did.
Publish still uses CARGO_REGISTRY_TOKEN the same way.

Dependabot checks github-actions and cargo weekly, each in one group.

Signed-off-by: Avelino <31996+avelino@users.noreply.github.com>

v0.6.2-beta+7f1d6f0

Toggle v0.6.2-beta+7f1d6f0's commit message

Verified

This commit was signed with the committer’s verified signature.
avelino Avelino
how it work in mermaid

Signed-off-by: Avelino <31996+avelino@users.noreply.github.com>

v0.6.2-beta+83cf95b

Toggle v0.6.2-beta+83cf95b's commit message

Unverified

This commit is not signed, but one or more authors requires that any commit attributed to them is signed.
Add 'mcp-session-id' to headers list

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Signed-off-by: Avelino <31996+avelino@users.noreply.github.com>

Verified

This tag was signed with the committer’s verified signature.
avelino Avelino

v0.6.2-beta+9bd7691

Toggle v0.6.2-beta+9bd7691's commit message

Verified

This commit was signed with the committer’s verified signature.
avelino Avelino
feat: add --only and --exclude to narrow the served catalog

A proxy that publishes every backend is right for a human at a terminal and
wrong for a model. Each tool costs context, and past a few hundred the client
starts hiding tools behind a lookup step, so one answer becomes several round
trips. An agent that only needs roam and github should not pay for the rest.

Both flags take comma-separated server names on mcp serve. `--only` runs first,
then `--exclude`. An unknown name gets logged as a warning instead of being
dropped quietly, because a typo would serve a catalog missing a whole backend
and that failure reads as "the model stopped using that tool".

Version goes to 0.6.2.

Signed-off-by: Avelino <31996+avelino@users.noreply.github.com>

Verified

This tag was signed with the committer’s verified signature.
avelino Avelino

Verified

This tag was signed with the committer’s verified signature.
avelino Avelino

v0.6.0-beta+e795cdc

Toggle v0.6.0-beta+e795cdc's commit message

Unverified

This commit is not signed, but one or more authors requires that any commit attributed to them is signed.
pkg: upgrade deps

Signed-off-by: Avelino <31996+avelino@users.noreply.github.com>