Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
156 commits
Select commit Hold shift + click to select a range
0dc5fb1
docs: update quality badges and report
actions-user Oct 6, 2025
0247954
docs: update quality badges and report
actions-user Oct 7, 2025
db7bf1e
fix: WASM compilation errors in wasm_typed_tool.rs
guyernest Oct 7, 2025
b8939f1
Merge remote-tracking branch 'upstream/main' into fix/wasm-compilatio…
guyernest Oct 8, 2025
825fc88
fix: remove assertions in jsonrpc_handling fuzz target
guyernest Oct 8, 2025
4957229
Merge pull request #79 from guyernest/fix/wasm-compilation-errors
guyernest Oct 8, 2025
2263053
docs: update quality badges and report
actions-user Oct 8, 2025
b60b5aa
docs: add accurate Chapter 10 transport documentation
guyernest Oct 8, 2025
9e635b6
docs: add comprehensive middleware chapter
guyernest Oct 8, 2025
a02a7c5
docs: update quality badges and report
actions-user Oct 8, 2025
87795ec
feat: add middleware integration and HTTP middleware support
guyernest Oct 8, 2025
d024af8
feat: HTTP middleware foundation - error handling, precedence, and in…
guyernest Oct 9, 2025
9eda4dc
feat: complete hyper migration with full HTTP middleware integration
guyernest Oct 9, 2025
1fb9909
test: add comprehensive HTTP middleware integration tests (Phase 2)
guyernest Oct 9, 2025
1a4a1a5
perf: add fast path for response processing when no middleware
guyernest Oct 9, 2025
1bc441d
docs: add HTTP middleware documentation to Chapters 10.3 and 11
guyernest Oct 9, 2025
b91d427
fix: implement case-insensitive HTTP header handling
guyernest Oct 9, 2025
57349e4
test: add StreamableHttpServer + OAuth integration tests
guyernest Oct 9, 2025
9036e5a
test: complete Phase 2 middleware integration tests
guyernest Oct 9, 2025
21e2393
docs: update quality badges and report
actions-user Oct 9, 2025
393c1d2
Merge pull request #81 from guyernest/docs/transport-middleware-chapters
guyernest Oct 9, 2025
e326691
docs: update quality badges and report
actions-user Oct 9, 2025
4dc71df
fix: resolve all clippy warnings for quality gate
guyernest Oct 9, 2025
3baa53c
Merge pull request #89 from guyernest/feat/middleware-quick-wins
guyernest Oct 9, 2025
f635a77
docs: update quality badges and report
actions-user Oct 9, 2025
f04a599
feat: migrate HTTP middleware to use http::HeaderMap
guyernest Oct 9, 2025
184b9ec
feat: add builder APIs for HTTP and protocol middleware configuration
guyernest Oct 9, 2025
9e5e901
feat: add middleware presets for common transport scenarios
guyernest Oct 9, 2025
b1b49b5
feat: add HTTP logging middleware with default-on sensitive header re…
guyernest Oct 9, 2025
da39956
feat: enhance HTTP logging middleware with query redaction and conten…
guyernest Oct 9, 2025
749dec6
feat: add protocol inbound coverage for notifications/events
guyernest Oct 9, 2025
83f41a5
feat: integrate HTTP/SSE notification routing through protocol middle…
guyernest Oct 10, 2025
a33b23c
feat: add server-side HTTP middleware foundation (symmetric with client)
guyernest Oct 10, 2025
eb5cc1b
feat: extract shared HTTP utilities for client/server middleware
guyernest Oct 10, 2025
6dfbaff
feat: add server middleware (HTTP + protocol layers) with adapters
guyernest Oct 10, 2025
fc9ae39
feat: integrate HTTP middleware into axum POST handler with fast-path
guyernest Oct 10, 2025
60d36e5
test: add protocol middleware ordering contract tests
guyernest Oct 10, 2025
c744c1c
fix: add http_middleware field to StreamableHttpServerConfig test fix…
guyernest Oct 10, 2025
af0fe13
feat: add ServerPreset with default middleware bundles
guyernest Oct 10, 2025
f9188a6
docs: add comprehensive server middleware section to Chapter 11
guyernest Oct 10, 2025
31e3f6c
feat: add server HTTP middleware example (55_server_middleware.rs)
guyernest Oct 10, 2025
0123d3c
feat: add ServerBuilder.with_http_middleware() convenience method + q…
guyernest Oct 10, 2025
acbde4b
fix: add header validation and error hooks in middleware path
guyernest Oct 10, 2025
64a8e9d
perf: improve middleware context and reduce RwLock contention
guyernest Oct 10, 2025
da90a90
fix: add http crate dependency for CI/fuzz build compatibility
guyernest Oct 10, 2025
05527b3
fix: replace all remaining hyper::http:: references with http::
guyernest Oct 10, 2025
5a5a2fd
style: apply rustfmt formatting to http import changes
guyernest Oct 10, 2025
46ef76c
docs: update quality badges and report
actions-user Oct 10, 2025
e19069e
fix: update doctests for middleware API compatibility
guyernest Oct 10, 2025
a545fd0
fix: add example 55 with streamable-http feature requirement
guyernest Oct 10, 2025
5e640ba
ci: skip example 55 in CI check (requires streamable-http feature)
guyernest Oct 10, 2025
0c00856
Merge pull request #90 from guyernest/feat/middleware-quick-wins
guyernest Oct 10, 2025
f00e1f5
docs: update quality badges and report
actions-user Oct 10, 2025
ced0c5e
feat: add DynamicResourceProvider for pattern-based resource routing
guyernest Oct 10, 2025
5ac130a
feat: add tool middleware with OAuth token injection (refined)
guyernest Oct 10, 2025
8c9e2a2
chore: bump version to 1.7.1 for comprehensive middleware release
guyernest Oct 10, 2025
cdb75cf
fix: use RequestHandlerExtra::new() constructor in tests
guyernest Oct 10, 2025
6c3d87c
fix: add backticks to doc comments and fix RequestHandlerExtra constr…
guyernest Oct 10, 2025
536ce5e
feat: OAuth auth_context pass-through - v1.8.0 BREAKING CHANGE
guyernest Oct 11, 2025
4041b07
fix: add missing auth_context parameter to HttpAdapter
guyernest Oct 11, 2025
cecfaa2
fix: reduce cognitive complexity in handle_post_fast_path
guyernest Oct 11, 2025
15a32ae
fix: resolve clippy warnings in auth_context integration
guyernest Oct 11, 2025
796e39f
Merge pull request #91 from guyernest/feat/middleware-quick-wins
guyernest Oct 11, 2025
ddfd2a2
docs: update quality badges and report
actions-user Oct 11, 2025
465548d
feat(mcp-tester): add OAuth device code flow + fix v1.8.0 compatibility
guyernest Oct 11, 2025
cabb7b7
feat(mcp-tester): add automatic OAuth discovery via OIDC
guyernest Oct 11, 2025
95d041b
feat(oauth): add device_authorization_endpoint to OIDC discovery meta…
guyernest Oct 11, 2025
c95323e
feat(mcp-tester): add OAuth authorization code flow with PKCE
guyernest Oct 11, 2025
c925406
fix(mcp-tester): use fixed redirect port for OAuth callback (fixes Co…
guyernest Oct 11, 2025
350491f
docs: update quality badges and report
actions-user Oct 11, 2025
f5816af
feat: add HTTP middleware support to JSON-RPC transport client
guyernest Oct 11, 2025
1b69062
docs(mcp-tester): comprehensive OAuth 2.0 and middleware documentation
guyernest Oct 11, 2025
5dac376
fix: add missing device_authorization_endpoint field and apply format…
guyernest Oct 12, 2025
e08bfd3
Merge pull request #92 from guyernest/feat/oauth-json-rpc-middleware
guyernest Oct 12, 2025
f1c3075
docs: update quality badges and report
actions-user Oct 12, 2025
df66371
docs: update quality badges and report
actions-user Oct 12, 2025
edcf9a6
docs: update quality badges and report
actions-user Oct 13, 2025
4310ef9
chore(deps): update dirs requirement from 5 to 6
dependabot[bot] Oct 13, 2025
77f7642
feat: add MiddlewareExecutor trait for consistent workflow tool execu…
guyernest Oct 13, 2025
8ca3f72
feat(dx): add ServerCoreBuilder::prompt_workflow() with automatic mid…
guyernest Oct 13, 2025
70f6977
feat: add stateless mode support for serverless deployments
guyernest Oct 13, 2025
0283767
debug: add auth_context tracing and test for workflow OAuth
guyernest Oct 13, 2025
1627541
Merge pull request #93 from paiml/dependabot/cargo/dirs-6
guyernest Oct 14, 2025
721dd4e
docs: update quality badges and report
actions-user Oct 14, 2025
ec6253c
Merge pull request #94 from guyernest/feat/oauth-json-rpc-middleware
guyernest Oct 14, 2025
abb07f7
docs: update quality badges and report
actions-user Oct 14, 2025
47d97f5
docs: update quality badges and report
actions-user Oct 14, 2025
767e5b2
feat: comprehensive progress reporting and cancellation support
guyernest Oct 14, 2025
14fc265
feat: add _meta field support and wire progress reporter creation
guyernest Oct 14, 2025
323547e
feat: add countdown example demonstrating progress and cancellation
guyernest Oct 14, 2025
2b2a3f7
docs: clarify NoopProgressReporter and move to Advanced section
guyernest Oct 14, 2025
8c27d45
docs: address comprehensive review feedback for ch12
guyernest Oct 15, 2025
fd76b55
docs: update quality badges and report
actions-user Oct 15, 2025
05cb03d
feat: add prompt workflow progress example and fix clippy warnings
guyernest Oct 15, 2025
ac554a7
feat: add built-in progress reporting to workflow prompts (DX improve…
guyernest Oct 15, 2025
c23ea45
docs: update quality badges and report
actions-user Oct 16, 2025
0cda0e9
docs: update quality badges and report
actions-user Oct 17, 2025
ab373ca
style: apply cargo fmt to workflow prompt handler
guyernest Oct 17, 2025
126682b
Merge remote-tracking branch 'origin/main' into feat/oauth-json-rpc-m…
guyernest Oct 17, 2025
de44686
docs: update quality badges and report
actions-user Oct 18, 2025
5ecd3a8
Merge branch 'main' into feat/oauth-json-rpc-middleware
guyernest Oct 18, 2025
ef69a38
fix: add missing _meta and total fields to benchmark code
guyernest Oct 18, 2025
90ed9c6
fix: change vec! to array for clippy compliance in prompt workflow ex…
guyernest Oct 18, 2025
c8fee13
Merge pull request #95 from guyernest/feat/oauth-json-rpc-middleware
guyernest Oct 18, 2025
2664f41
docs: update quality badges and report
actions-user Oct 18, 2025
de180fe
feat: comprehensive Chapter 15 on MCP server testing + mcp-tester imp…
guyernest Oct 19, 2025
05e23cd
docs: update quality badges and report
actions-user Oct 19, 2025
64468a1
fix: mcp-tester critical improvements - CI-safe output, accurate docs…
guyernest Oct 20, 2025
5e9dde0
docs: update quality badges and report
actions-user Oct 20, 2025
b5660d7
feat: comprehensive Chapter 23 on custom MCP transports with business…
guyernest Oct 20, 2025
2ef9c59
fix: Chapter 23 code corrections + Gateway/Proxy pattern
guyernest Oct 20, 2025
73e248b
style: auto-format diagnostics.rs per cargo fmt
guyernest Oct 20, 2025
9a09ea4
Merge pull request #96 from guyernest/book/testing-and-custom-transport
guyernest Oct 21, 2025
5c7625a
docs: update quality badges and report
actions-user Oct 21, 2025
f423320
docs: update quality badges and report
actions-user Oct 21, 2025
e8ffe1d
feat: add tool middleware support to high-level ServerBuilder API
guyernest Oct 21, 2025
7175d54
fix: correct TypedTool test to use proper ToolHandler implementation
guyernest Oct 21, 2025
e26e918
fix: move struct definitions before statements to satisfy clippy
guyernest Oct 21, 2025
b504e84
Merge pull request #97 from guyernest/feat/serverbuilder-tool-middleware
guyernest Oct 21, 2025
09fd9b8
docs: update quality badges and report
actions-user Oct 21, 2025
77da471
docs: update quality badges and report
actions-user Oct 22, 2025
2b15e8f
docs: update quality badges and report
actions-user Oct 23, 2025
68eeec0
docs: update quality badges and report
actions-user Oct 24, 2025
0640839
docs: update quality badges and report
actions-user Oct 25, 2025
560845f
docs: update quality badges and report
actions-user Oct 26, 2025
0803820
docs: update quality badges and report
actions-user Oct 27, 2025
09eec9f
ci(deps): bump actions/upload-artifact from 4 to 5
dependabot[bot] Oct 27, 2025
4a7e65d
docs: update quality badges and report
actions-user Oct 28, 2025
c72e581
docs: update quality badges and report
actions-user Oct 29, 2025
167a1fd
docs: update quality badges and report
actions-user Oct 30, 2025
d8debdb
docs: update quality badges and report
actions-user Oct 31, 2025
b8f583a
docs: update quality badges and report
actions-user Nov 1, 2025
20f51a6
docs: update quality badges and report
actions-user Nov 2, 2025
47f6f06
feat: add cargo-pmcp scaffolding CLI with complete calculator template
guyernest Oct 27, 2025
e065c16
feat(cargo-pmcp): add SQLite Explorer template with workflow prompts
guyernest Oct 27, 2025
10ed3b1
feat(cargo-pmcp): add simple calculator template for progressive lear…
guyernest Nov 2, 2025
77e0b79
fix(workflows): enable template substitution for constant string argu…
guyernest Nov 2, 2025
04fc8dc
feat(cargo-pmcp): add progressive learning flow with port management …
guyernest Nov 2, 2025
c412d2b
docs: add comprehensive TUTORIAL.md for progressive MCP learning
guyernest Nov 2, 2025
f6f1516
docs(book): add Chapter 1.5 Quick Start Tutorial for hands-on learning
guyernest Nov 2, 2025
4a821b4
fix(benches): add target_arch gate for x86_64-specific SIMD benchmarks
guyernest Nov 2, 2025
b2c6c76
chore: apply cargo fmt formatting
guyernest Nov 2, 2025
3ae380e
fix(cargo-pmcp): add readme metadata to Cargo.toml
guyernest Nov 2, 2025
caa494a
Merge pull request #99 from paiml/dependabot/github_actions/actions/u…
guyernest Nov 2, 2025
aad4c1c
docs: update quality badges and report
actions-user Nov 2, 2025
864a833
Merge branch 'main' into feat/cargo-pmcp-first-phase
guyernest Nov 2, 2025
02ddc63
chore: add rust-toolchain.toml requiring Rust 1.83+
guyernest Nov 2, 2025
cf75b9b
fix(clippy): replace manual Default impls with derive attribute
guyernest Nov 2, 2025
f0d4a36
fix(clippy): replace to_string with clone for implicit_clone lint
guyernest Nov 2, 2025
9317552
fix(ci): remove rust-toolchain.toml in fuzz jobs to allow nightly
guyernest Nov 2, 2025
370e478
feat(cargo-pmcp): add smart test generation and Phase 4 tutorial
guyernest Nov 2, 2025
a80b813
feat(cargo-pmcp): enhance test workflow with smart generation and sim…
guyernest Nov 2, 2025
ede95e6
docs(cargo-pmcp): add comprehensive README and fix formatting
guyernest Nov 2, 2025
96aecd8
docs(cargo-pmcp): enhance scenario README with prominent known limita…
guyernest Nov 2, 2025
9dac159
feat(workflow): add dynamic resource URI interpolation with template …
guyernest Nov 3, 2025
996a4af
feat(workflow): add post-tool resource fetching for step-output depen…
guyernest Nov 4, 2025
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
598 changes: 598 additions & 0 deletions .github-issue-comments.md

Large diffs are not rendered by default.

3 changes: 2 additions & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -108,7 +108,8 @@ jobs:
fi
if [[ "$example_name" == "22_streamable_http_server_stateful" ]] || \
[[ "$example_name" == "23_streamable_http_server_stateless" ]] || \
[[ "$example_name" == "24_streamable_http_client" ]]; then
[[ "$example_name" == "24_streamable_http_client" ]] || \
[[ "$example_name" == "55_server_middleware" ]]; then
echo "Skipping example: $example_name (requires streamable-http feature)"
continue
fi
Expand Down
29 changes: 19 additions & 10 deletions .github/workflows/fuzz.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,12 +28,15 @@ jobs:

steps:
- uses: actions/checkout@v4


- name: Remove rust-toolchain.toml to allow nightly
run: rm -f rust-toolchain.toml

- name: Install Rust nightly
uses: dtolnay/rust-toolchain@nightly
with:
components: llvm-tools-preview

- name: Install cargo-fuzz
run: cargo install cargo-fuzz

Expand All @@ -59,14 +62,14 @@ jobs:

- name: Upload crash artifacts
if: failure()
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v5
with:
name: fuzz-crashes-${{ matrix.target }}
path: fuzz/artifacts/${{ matrix.target }}/

- name: Upload corpus
if: github.event_name == 'schedule'
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v5
with:
name: fuzz-corpus-${{ matrix.target }}
path: fuzz/corpus/${{ matrix.target }}/
Expand All @@ -75,10 +78,13 @@ jobs:
name: Fuzzing Coverage
runs-on: ubuntu-latest
if: github.event_name == 'schedule' || github.event_name == 'workflow_dispatch'

steps:
- uses: actions/checkout@v4


- name: Remove rust-toolchain.toml to allow nightly
run: rm -f rust-toolchain.toml

- name: Install Rust nightly
uses: dtolnay/rust-toolchain@nightly
with:
Expand Down Expand Up @@ -121,7 +127,7 @@ jobs:
done

- name: Upload coverage reports
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v5
with:
name: fuzz-coverage
path: fuzz/coverage/
Expand All @@ -130,10 +136,13 @@ jobs:
name: 24-Hour Fuzzing
runs-on: ubuntu-latest
if: github.event_name == 'workflow_dispatch'

steps:
- uses: actions/checkout@v4


- name: Remove rust-toolchain.toml to allow nightly
run: rm -f rust-toolchain.toml

- name: Install Rust nightly
uses: dtolnay/rust-toolchain@nightly

Expand All @@ -153,7 +162,7 @@ jobs:
timeout-minutes: 1440 # 24 hours

- name: Upload results
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v5
with:
name: fuzz-24h-results
path: |
Expand Down
20 changes: 17 additions & 3 deletions Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "pmcp"
version = "1.7.0"
version = "1.8.0"
edition = "2021"
authors = ["PAIML Team"]
description = "High-quality Rust SDK for Model Context Protocol (MCP) with full TypeScript SDK compatibility"
Expand All @@ -23,6 +23,7 @@ async-trait = "0.1"
thiserror = "2.0"
anyhow = "1.0"
tracing = "0.1"
http = "1.1"

# Utility dependencies (needed on all platforms)
url = "2.5"
Expand Down Expand Up @@ -349,12 +350,25 @@ name = "53_typed_tools_workflow_integration"
path = "examples/53_typed_tools_workflow_integration.rs"
required-features = ["schema-generation"]

[[example]]
name = "55_server_middleware"
path = "examples/55_server_middleware.rs"
required-features = ["streamable-http"]

[[example]]
name = "56_dynamic_resources"
path = "examples/56_dynamic_resources.rs"

[[example]]
name = "57_tool_middleware_oauth"
path = "examples/57_tool_middleware_oauth.rs"

[[bench]]
name = "comprehensive_benchmarks"
harness = false
[workspace]
members = ["pmcp-macros", "examples/wasm-client", "examples/25-oauth-basic", "examples/test-basic", "examples/26-server-tester"]
exclude = ["fuzz", "examples/cloudflare-worker-mcp"]
members = ["pmcp-macros", "crates/mcp-tester", "examples/wasm-client", "examples/25-oauth-basic", "examples/test-basic", "cargo-pmcp"]
exclude = ["fuzz", "examples/cloudflare-worker-mcp", "examples/26-server-tester"]

[package.metadata.docs.rs]
all-features = true
Expand Down
Loading