# Reported issues for pmcp Desktop Extension by paiml

Pod holds 19 of 27 GitHub reports that passed its relevance review. This can include external user reports, maintainer-confirmed bugs, and concrete feature gaps. Treat them as evidence to inspect, not a count of distinct defects.

Back to [pmcp Desktop Extension by paiml](/mcp/pmcp-desktop-extension-by-paiml).

## Most discussed

### cargo pmcp deploy init --target-type google-cloud-run: scaffold .pmcp/deploy.toml with [target] + [gcp] + [server] + [environment] minimum-viable schema

## Problem

`cargo pmcp deploy init --target-type google-cloud-run` (`src/deployment/targets/google_cloud_run/mod.rs` line ~99) currently scaffolds three files — `Dockerfile`, `.dockerignore`, and `cloudbuild.yaml` — but does **not** emit a `.pmcp/deploy.toml`. As a result, app-level configuration (environment variables, region, Cloud Run service name, memory/CPU sizing, ingress controls, `allow-unauthenticated`) has no declarative path. Operators who need to wire these values to a deployed serv

[Read the thread](https://github.com/paiml/rust-mcp-sdk/issues/260) · 2026-05-19 · open · 2 comments

### cargo pmcp deploy --target-type google-cloud-run: switch default runtime base to gcr.io/distroless/cc-debian12 with opt-out [runtime] base knob

## Problem

The generated Dockerfile produced by `cargo pmcp deploy --target-type google-cloud-run` (source: `cargo-pmcp/src/deployment/targets/google_cloud_run/dockerfile.rs`) uses `FROM debian:bookworm-slim` as the runtime stage and apt-installs `ca-certificates` and `libssl3`, producing runtime images on the order of ~80 MB. The runtime layer includes a full shell (`bash`/`sh`), apt, and a system package manager — none of which are required for a Rust HTTP server and all of which add to the a

[Read the thread](https://github.com/paiml/rust-mcp-sdk/issues/259) · 2026-05-19 · open · 2 comments

### cargo pmcp deploy init --target-type google-cloud-run: support multi-crate isolated layouts via opt-in [layout] block in deploy.toml

## Problem

`cargo pmcp deploy init --target-type google-cloud-run` emits one of two Dockerfile templates depending on detected layout, and **both templates fail on multi-crate isolated layouts** — for different reasons. The workspace template (`cargo-pmcp/src/deployment/targets/google_cloud_run/dockerfile.rs` line ~14) uses `COPY . .` followed by a `cargo metadata` regex-based step that excludes packages with "lambda" in their name. On a multi-crate isolated layout this **over-bundles**: every 

[Read the thread](https://github.com/paiml/rust-mcp-sdk/issues/258) · 2026-05-19 · open · 2 comments

### feat: Add OAuth client-side middleware with token injection and auto-refresh

## Problem

The SDK has comprehensive server-side OAuth support (bearer token validation, scope middleware) but lacks **client-side OAuth middleware** for:
- Automatic token injection into outgoing requests
- 401/403 detection and automatic token refresh
- Retry logic after re-authentication
- Token lifecycle management (expiry tracking, proactive refresh)

This is critical for MCP clients connecting to OAuth-protected servers. The TypeScript SDK provides `withOAuth` for this use case.

## Propo

[Read the thread](https://github.com/paiml/rust-mcp-sdk/issues/83) · 2025-10-08 · closed · 2 comments

### feat: Add HttpMiddleware trait for transport-level HTTP concerns

## Problem

The current middleware system operates at the Protocol/JSON-RPC layer, which misses HTTP-specific concerns like:
- Header injection (auth tokens, correlation IDs, custom headers)
- Request/response logging with header inclusion
- Status code-based conditionals (retry on 429, circuit break on 503)
- HTTP-specific transformations before reaching Protocol layer

The TypeScript SDK provides fetch-wrapping middleware for these concerns. We need equivalent ergonomics.

## Proposed Solution

[Read the thread](https://github.com/paiml/rust-mcp-sdk/issues/82) · 2025-10-08 · closed · 2 comments

### fix: .cargo/config.toml has local /mnt/zram/targets path — breaks CI

## Bug

All CI jobs fail with:
```
error: failed to create directory /mnt/zram/targets — Permission denied (os error 13)
```

`.cargo/config.toml` has `target-dir = "/mnt/zram/targets"` committed, which only exists on a local dev machine.

## Five-Whys

1. **Why permission denied?** `/mnt/zram/targets` doesn't exist on GitHub runners.
2. **Why is Cargo using that path?** `.cargo/config.toml` sets `target-dir`.
3. **Why is a local path in the repo?** Developer's zram ramdisk config was committed.

[Read the thread](https://github.com/paiml/rust-mcp-sdk/issues/222) · 2026-04-05 · closed · outside contributor · 1 comment

### Stdio Transport Non-Compliance with MCP Specification

The stdio transport implementation uses HTTP-style Content-Length header framing instead of the newline-delimited JSON-RPC messages required by the MCP specification. This causes incompatibility with standard MCP clients.

The specification is exacting here:

```

Messages are individual JSON-RPC requests, notifications, or responses.
Messages are delimited by newlines, and MUST NOT contain embedded newlines.

The server MUST NOT write anything to its stdout that is not a valid MCP message.
The 

[Read the thread](https://github.com/paiml/rust-mcp-sdk/issues/158) · 2026-01-15 · closed · outside contributor · 1 comment

### feat: Add first-class middleware integration to Client/Protocol/Transport

## Summary

The middleware system (`Middleware`, `AdvancedMiddleware`, `MiddlewareChain`, `EnhancedMiddlewareChain`) is comprehensive and powerful, but there's no standard integration path to attach middleware to `Client`, `Protocol`, or `Transport`. Users must manually invoke middleware chains, which is error-prone and defeats the purpose of having middleware infrastructure.

## Current State

**What exists:**
- ✅ Comprehensive middleware traits (`Middleware`, `AdvancedMiddleware`)
- ✅ Chain im

[Read the thread](https://github.com/paiml/rust-mcp-sdk/issues/80) · 2025-10-08 · closed · 1 comment

## Most recent

### StdioTransport: stdin EOF disables stdout, dropping responses to already-accepted requests

# StdioTransport: stdin EOF disables stdout, dropping responses to already-accepted requests

## Summary

`StdioTransport` uses a single `closed` flag for two independent streams. Reaching EOF on
**stdin** sets it, and `send()` then refuses every **stdout** write. A client that pipes a
batch of requests and closes stdin — the normal shape of a one-shot MCP session — never
receives the responses to requests the server already accepted and answered.

## Where

`src/shared/stdio.rs` (v2.17.0):

```

[Read the thread](https://github.com/paiml/rust-mcp-sdk/issues/316) · 2026-07-31 · closed · outside contributor · 0 comments

### pmcp-workbook-server: 2 stale golden-tool tests quarantined from workspace-test gate

## Summary

Two tests in `pmcp-workbook-server` fail against the committed golden bundle and are **quarantined** from the `workspace-test` CI gate (`--exclude pmcp-workbook-server`) so unrelated PRs can merge. They need workbook-domain review.

## Failing tests

`crates/pmcp-workbook-server/src/assemble.rs`:
- `assemble::tests::build_server_from_golden_registers_five_tools` (panics at `:130`)
- `assemble::tests::matching_bundle_id_succeeds` (panics at `:142`)

Both assert the server built from t

[Read the thread](https://github.com/paiml/rust-mcp-sdk/issues/293) · 2026-07-05 · open · 0 comments

### wasm support for pmcp-macros

Love that this project supports webassembly though I notice that the [`WasmMcpServer` uses `WasmTool`, `WasmResource` and `WasmPrompt`](https://github.com/paiml/rust-mcp-sdk/blob/9edc4b4974c02f00d7b7d097a03aa401271db8ae/src/server/wasm_server.rs#L328-L358) rather than [`ToolHandler`, `PromptHandler` and `ResourceHandler`](https://github.com/paiml/rust-mcp-sdk/blob/9edc4b4974c02f00d7b7d097a03aa401271db8ae/src/server/mod.rs#L221-L270). I've not spent a ton of time digging into the macro generation

[Read the thread](https://github.com/paiml/rust-mcp-sdk/issues/278) · 2026-06-11 · open · external user · 0 comments

### Phase 75 SATD: cargo-pmcp commands roadmap (landing build, dev watch, add scaffolding)

## Outstanding SATDs from Phase 75 Plan 75-04 triage (D-04)

Filed as part of Phase 75 SATD triage. Replaces 4 `// TODO: Implement ...` comments in `cargo-pmcp/src/commands/` with `// See #NNN —` references after this issue is filed.

### Outstanding follow-ups

- [ ] `cargo-pmcp/src/commands/landing/mod.rs:92` — Implement the `landing build` subcommand (currently prints "Build command coming in Phase 1!" and asks the user to fall back to `npm run build`).
- [ ] `cargo-pmcp/src/commands/landing/

[Read the thread](https://github.com/paiml/rust-mcp-sdk/issues/248) · 2026-04-25 · closed · 0 comments

### Phase 75 SATD: wire aws-sdk-secretsmanager into AWS secrets provider

## Outstanding SATDs from Phase 75 Plan 75-04 triage (D-04)

Filed as part of Phase 75 SATD triage. Replaces 4 `// TODO: Implement with aws-sdk-secretsmanager` comments in `cargo-pmcp/src/secrets/providers/aws.rs` with `// See #NNN —` references after this issue is filed.

### Outstanding follow-ups

- [ ] `cargo-pmcp/src/secrets/providers/aws.rs:96` — `list()`: integrate `aws-sdk-secretsmanager` `list_secrets` API; remove the `Err(SecretError::ProviderError { ... "not yet implemented" })` stub.

[Read the thread](https://github.com/paiml/rust-mcp-sdk/issues/247) · 2026-04-25 · closed · 0 comments

### Stdio example not working

Try example from README.md in the project root. Server started but not respond.

[Read the thread](https://github.com/paiml/rust-mcp-sdk/issues/116) · 2025-11-27 · open · external user · 0 comments

### RFC: cargo-pmcp - Production-Grade MCP Server Development Toolkit

# RFC: cargo-pmcp - Production-Grade MCP Server Development Toolkit

**Type:** RFC / Feature Request
**Labels:** `enhancement`, `RFC`, `tooling`, `cargo-pmcp`, `discussion`

---

## Summary

We propose **`cargo-pmcp`** - a batteries-included toolkit for building production-grade MCP servers in Rust. This RFC is based on real-world experience building **6 production MCP servers** and incorporates proven patterns for security, scalability, and developer experience.

**Goal:** Make `cargo-pmcp` the

[Read the thread](https://github.com/paiml/rust-mcp-sdk/issues/98) · 2025-10-23 · closed · 0 comments

### feat: Improve middleware developer ergonomics with macros, presets, and examples

## Problem

Creating custom middleware currently requires significant boilerplate:
- Manual trait implementations with async-trait
- Verbose struct definitions
- Repetitive priority/should_execute implementations
- No guidance on typical middleware stacks per transport

The TypeScript SDK provides `createMiddleware` helper for concise middleware creation. We need equivalent Rust ergonomics plus:
- Macro for concise custom middleware
- Pre-configured middleware stacks per transport
- Concrete int

[Read the thread](https://github.com/paiml/rust-mcp-sdk/issues/88) · 2025-10-08 · closed · 0 comments

### feat: Add Prometheus and OpenTelemetry exporters for middleware metrics

## Problem

The existing `MetricsMiddleware` collects metrics but lacks integration with standard observability platforms:
- No Prometheus exporter for scraping
- No OpenTelemetry integration for distributed tracing
- No histogram/percentile metrics (only counters)
- Manual metrics retrieval required

Production deployments need:
- Automatic metrics export to monitoring systems
- Distributed tracing correlation
- Standard metric formats (Prometheus, OTLP)
- Histograms for latency distribution

#

[Read the thread](https://github.com/paiml/rust-mcp-sdk/issues/87) · 2025-10-08 · open · 0 comments

### feat: Add CompressionMiddleware for HTTP/WebSocket payloads

## Problem

Large JSON-RPC payloads (especially resource content, tool results, and prompt responses) can significantly impact:
- Network bandwidth usage
- Request/response latency
- Mobile/edge deployment performance

The TypeScript SDK doesn't have built-in compression, but this is a common production need for HTTP/WebSocket transports. Stdio transport should NOT use compression (breaks line-delimited framing).

## Proposed Solution

Add `CompressionMiddleware` that operates at the HTTP transp

[Read the thread](https://github.com/paiml/rust-mcp-sdk/issues/86) · 2025-10-08 · open · 0 comments

### feat: Enhance CircuitBreakerMiddleware and RateLimitMiddleware with scoping and metrics

## Problem

Current `CircuitBreakerMiddleware` and `RateLimitMiddleware` implementations are global and lack production-grade features:

### CircuitBreakerMiddleware limitations:
- Global state (no per-endpoint/method/session scoping)
- No persistence (resets on restart)
- No aggregated metrics/observability
- Fixed thresholds (no dynamic adjustment)

### RateLimitMiddleware limitations:
- Global limits (no per-endpoint/method/session scoping)
- No persistence across restarts
- No distributed co

[Read the thread](https://github.com/paiml/rust-mcp-sdk/issues/85) · 2025-10-08 · closed · 0 comments

The remaining reports are on [the project's issue tracker](https://github.com/paiml/rust-mcp-sdk/issues).
