Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
150 changes: 137 additions & 13 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ members = [
"crates/aisix-core",
"crates/aisix-etcd",
"crates/aisix-gateway",
"crates/aisix-mcp",
"crates/aisix-provider-openai",
"crates/aisix-provider-anthropic",
"crates/aisix-provider-vertex",
Expand Down
48 changes: 48 additions & 0 deletions crates/aisix-mcp/Cargo.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
[package]
name = "aisix-mcp"
version.workspace = true
edition.workspace = true
rust-version.workspace = true
license.workspace = true
repository.workspace = true
authors.workspace = true
description = "aisix: MCP gateway — upstream MCP server client (Streamable HTTP) behind the McpBridge trait"

[dependencies]
tokio.workspace = true
async-trait.workspace = true
serde.workspace = true
serde_json.workspace = true
thiserror.workspace = true

# Official MCP Rust SDK. Pinned exactly: rmcp is <16 months old and still
# ships breaking changes on a roughly-monthly cadence, so we hold a fixed
# version and keep all rmcp types behind this crate's `McpBridge` trait to
# absorb API drift. Production only needs the upstream-facing client; the
# server side (used to stand up a real MCP server in tests, and later for the
# DP `/mcp` endpoint) is a dev-dependency so the gateway binary does not link
# it yet.
[dependencies.rmcp]
version = "=1.8.0"
default-features = false
features = [
"client",
"base64",
"transport-streamable-http-client",
"transport-streamable-http-client-reqwest",
]

[dev-dependencies]
tokio = { workspace = true, features = ["macros", "rt-multi-thread"] }
axum.workspace = true

# Server-side rmcp, dev-only: lets the integration test stand up a real MCP
# server over real Streamable HTTP (no mock transport) for the client to talk
# to end-to-end.
[dev-dependencies.rmcp]
version = "=1.8.0"
default-features = false
features = [
"server",
"transport-streamable-http-server",
]
Loading
Loading