Tools MCP and External Integration
MCP Server — Stack
Mcp server › Stack
Technology landscape as of 2026-10-10. Knowledge cutoff May 2026.
Selection criteria
The choice is a library plus a deployment shape, and the deployment shape constrains more than the library does.
- Deployment model. Whether the server runs as a short-lived child process on the caller's machine or as a long-lived network service. This decides authentication, credential custody, scaling, and who can reach the backing system.
- Concurrency behaviour. Whether one slow request blocks the process, since many servers are written as simple synchronous handlers and then deployed where they receive parallel calls from a single agent turn.
- Streaming and progress. Whether the library supports emitting incremental progress for long operations, which is the difference between a client waiting usefully and timing out.
- Session handling. Whether session identity, resumption after a dropped connection, and eviction are provided or left as an exercise, and whether the provided behaviour survives horizontal scaling.
- Surface authoring ergonomics. How declarations are written — decorators over functions, explicit schema documents, generation from an existing interface description — and whether the resulting descriptions can be edited for a model reader without editing code.
- Per-caller scoping. Whether the library makes the authenticated caller available to the handler, so the advertised surface and the backing call can both depend on it.
- Testability. Whether the surface can be exercised without a live client, so description and schema changes can be covered by ordinary tests.
Options
| Option | Best for | Watch out for |
|---|---|---|
| Official MCP SDKs (TypeScript, Python, Java, Kotlin, C#, Go, Rust and others) | Writing a purpose-built server over a system you own | Feature parity between language ports lags; streaming, session, and authorisation support arrive at different times |
| Lightweight server frameworks layered on an SDK (FastMCP and similar) | Fast authoring where declarations are derived from typed function signatures | Generated descriptions read like code documentation; expect to override them for model consumption |
| Generators from an existing interface description (OpenAPI-to-MCP bridges) | Putting a large existing HTTP API in front of an agent quickly | Produces exactly the endpoint-mirroring surface that is hardest for a model to use; treat the output as a starting point |
| Stdio child process distributed as a binary or package | Developer tooling, local filesystem and desktop access, anything needing the user's own machine | Runs with the user's full privileges unless separately confined; distribution and update are the user's problem |
| Containerised network service behind an HTTP transport | Shared organisational capabilities with central credentials and audit | Needs real authorisation, multi-tenancy, and session handling — all of which a local server avoids entirely |
| Serverless function hosting the HTTP transport | Bursty, stateless surfaces with low steady traffic | Cold starts land inside an agent turn; long operations collide with platform execution limits |
| Embedding the server in an existing application process | Exposing internal capability without a new deployment | The server's resource consumption and failure modes become the host application's |