| Framework | MCP integration | Tool filtering? | Example |
|---|---|---|---|
| Langchain | MultiServerMCPClient accepts a dictionary of MCP servers | Filter with get_tools() after connecting to servers | Example |
| Agent-framework | MCPStreamableHTTPTool for each MCP server | Filter with allowed_tools on that class, or tools on agent.run() | Example |
| Pydantic AI | MCPServerStreamableHTTP for each MCP server | Apply .filtered() method to the server and use result as a toolset for agent |
Example |
| Framework | Otel? | Managed service | Pricing | Notes |
|---|---|---|---|---|
| Langchain | ❌ | Langsmith | Free tier, Developer, Plus, Enterprise | Easy to setup, well suited for LLM-based applications. Possibly not as useful for general observability. |
| Agent-framework | ✅ | Azure Monitor or Azure AI Foundry Tracing | Azure App Insights pricing | You can also send spans to Aspire .NET dashboard (local), or other otel-compliant platforms. |
| Pydantic AI | ✅ | Pydantic Logfire | Free, Pro, Enterprise, Self-hosted Enterprise | Easy to setup. Works well for LLM-based calls as well as general application calls. You can also send to otel-compliant platforms. |
| Framework | Workflow API | Durability |
|---|---|---|
| Langchain | LangGraph | Graph state can be persisted in a custom checkpointer or in Langsmith, and resumed from that state. Documentation |
| Agent-framework | WorkflowBuilder | Support for checkpointer classes. Discussions on other options for durability |
| Pydantic AI | Pydantic-Graph | Built-in support for Temporal, dbos, Prefect. Documentation |