fast-agent-mcp 0.2.25__tar.gz → 0.2.27__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (192) hide show
  1. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/PKG-INFO +2 -2
  2. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/pyproject.toml +2 -2
  3. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/src/mcp_agent/llm/model_factory.py +9 -3
  4. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/src/mcp_agent/mcp/mcp_agent_client_session.py +23 -5
  5. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/src/mcp_agent/mcp/prompts/prompt_server.py +12 -4
  6. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/.gitignore +0 -0
  7. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/LICENSE +0 -0
  8. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/README.md +0 -0
  9. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/examples/azure-openai/fastagent.config.yaml +0 -0
  10. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/examples/data-analysis/analysis-campaign.py +0 -0
  11. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/examples/data-analysis/analysis.py +0 -0
  12. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/examples/data-analysis/fastagent.config.yaml +0 -0
  13. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/examples/data-analysis/mount-point/WA_Fn-UseC_-HR-Employee-Attrition.csv +0 -0
  14. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/examples/mcp/state-transfer/agent_one.py +0 -0
  15. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/examples/mcp/state-transfer/agent_two.py +0 -0
  16. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/examples/mcp/state-transfer/fastagent.config.yaml +0 -0
  17. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/examples/mcp/vision-examples/example1.py +0 -0
  18. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/examples/mcp/vision-examples/example2.py +0 -0
  19. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/examples/mcp/vision-examples/example3.py +0 -0
  20. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/examples/mcp/vision-examples/fastagent.config.yaml +0 -0
  21. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/examples/otel/agent.py +0 -0
  22. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/examples/otel/agent2.py +0 -0
  23. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/examples/otel/docker-compose.yaml +0 -0
  24. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/examples/otel/fastagent.config.yaml +0 -0
  25. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/examples/researcher/fastagent.config.yaml +0 -0
  26. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/examples/researcher/researcher-eval.py +0 -0
  27. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/examples/researcher/researcher-imp.py +0 -0
  28. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/examples/researcher/researcher.py +0 -0
  29. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/examples/tensorzero/README.md +0 -0
  30. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/examples/tensorzero/agent.py +0 -0
  31. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/examples/tensorzero/docker-compose.yml +0 -0
  32. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/examples/tensorzero/fastagent.config.yaml +0 -0
  33. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/examples/tensorzero/image_demo.py +0 -0
  34. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/examples/tensorzero/mcp_server/mcp_server.py +0 -0
  35. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/examples/tensorzero/simple_agent.py +0 -0
  36. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/examples/workflows/chaining.py +0 -0
  37. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/examples/workflows/evaluator.py +0 -0
  38. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/examples/workflows/fastagent.config.yaml +0 -0
  39. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/examples/workflows/graded_report.md +0 -0
  40. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/examples/workflows/human_input.py +0 -0
  41. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/examples/workflows/orchestrator.py +0 -0
  42. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/examples/workflows/parallel.py +0 -0
  43. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/examples/workflows/router.py +0 -0
  44. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/examples/workflows/short_story.md +0 -0
  45. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/examples/workflows/short_story.txt +0 -0
  46. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/src/mcp_agent/__init__.py +0 -0
  47. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/src/mcp_agent/agents/__init__.py +0 -0
  48. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/src/mcp_agent/agents/agent.py +0 -0
  49. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/src/mcp_agent/agents/base_agent.py +0 -0
  50. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/src/mcp_agent/agents/workflow/__init__.py +0 -0
  51. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/src/mcp_agent/agents/workflow/chain_agent.py +0 -0
  52. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/src/mcp_agent/agents/workflow/evaluator_optimizer.py +0 -0
  53. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/src/mcp_agent/agents/workflow/orchestrator_agent.py +0 -0
  54. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/src/mcp_agent/agents/workflow/orchestrator_models.py +0 -0
  55. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/src/mcp_agent/agents/workflow/orchestrator_prompts.py +0 -0
  56. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/src/mcp_agent/agents/workflow/parallel_agent.py +0 -0
  57. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/src/mcp_agent/agents/workflow/router_agent.py +0 -0
  58. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/src/mcp_agent/app.py +0 -0
  59. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/src/mcp_agent/cli/__init__.py +0 -0
  60. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/src/mcp_agent/cli/__main__.py +0 -0
  61. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/src/mcp_agent/cli/commands/check_config.py +0 -0
  62. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/src/mcp_agent/cli/commands/go.py +0 -0
  63. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/src/mcp_agent/cli/commands/quickstart.py +0 -0
  64. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/src/mcp_agent/cli/commands/setup.py +0 -0
  65. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/src/mcp_agent/cli/commands/url_parser.py +0 -0
  66. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/src/mcp_agent/cli/main.py +0 -0
  67. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/src/mcp_agent/cli/terminal.py +0 -0
  68. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/src/mcp_agent/config.py +0 -0
  69. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/src/mcp_agent/console.py +0 -0
  70. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/src/mcp_agent/context.py +0 -0
  71. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/src/mcp_agent/context_dependent.py +0 -0
  72. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/src/mcp_agent/core/__init__.py +0 -0
  73. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/src/mcp_agent/core/agent_app.py +0 -0
  74. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/src/mcp_agent/core/agent_types.py +0 -0
  75. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/src/mcp_agent/core/direct_decorators.py +0 -0
  76. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/src/mcp_agent/core/direct_factory.py +0 -0
  77. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/src/mcp_agent/core/enhanced_prompt.py +0 -0
  78. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/src/mcp_agent/core/error_handling.py +0 -0
  79. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/src/mcp_agent/core/exceptions.py +0 -0
  80. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/src/mcp_agent/core/fastagent.py +0 -0
  81. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/src/mcp_agent/core/interactive_prompt.py +0 -0
  82. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/src/mcp_agent/core/mcp_content.py +0 -0
  83. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/src/mcp_agent/core/prompt.py +0 -0
  84. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/src/mcp_agent/core/request_params.py +0 -0
  85. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/src/mcp_agent/core/validation.py +0 -0
  86. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/src/mcp_agent/event_progress.py +0 -0
  87. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/src/mcp_agent/executor/__init__.py +0 -0
  88. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/src/mcp_agent/executor/executor.py +0 -0
  89. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/src/mcp_agent/executor/task_registry.py +0 -0
  90. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/src/mcp_agent/executor/workflow_signal.py +0 -0
  91. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/src/mcp_agent/human_input/__init__.py +0 -0
  92. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/src/mcp_agent/human_input/handler.py +0 -0
  93. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/src/mcp_agent/human_input/types.py +0 -0
  94. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/src/mcp_agent/llm/__init__.py +0 -0
  95. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/src/mcp_agent/llm/augmented_llm.py +0 -0
  96. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/src/mcp_agent/llm/augmented_llm_passthrough.py +0 -0
  97. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/src/mcp_agent/llm/augmented_llm_playback.py +0 -0
  98. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/src/mcp_agent/llm/memory.py +0 -0
  99. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/src/mcp_agent/llm/prompt_utils.py +0 -0
  100. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/src/mcp_agent/llm/provider_key_manager.py +0 -0
  101. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/src/mcp_agent/llm/provider_types.py +0 -0
  102. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/src/mcp_agent/llm/providers/__init__.py +0 -0
  103. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/src/mcp_agent/llm/providers/anthropic_utils.py +0 -0
  104. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/src/mcp_agent/llm/providers/augmented_llm_anthropic.py +0 -0
  105. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/src/mcp_agent/llm/providers/augmented_llm_azure.py +0 -0
  106. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/src/mcp_agent/llm/providers/augmented_llm_deepseek.py +0 -0
  107. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/src/mcp_agent/llm/providers/augmented_llm_generic.py +0 -0
  108. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/src/mcp_agent/llm/providers/augmented_llm_google.py +0 -0
  109. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/src/mcp_agent/llm/providers/augmented_llm_openai.py +0 -0
  110. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/src/mcp_agent/llm/providers/augmented_llm_openrouter.py +0 -0
  111. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/src/mcp_agent/llm/providers/augmented_llm_tensorzero.py +0 -0
  112. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/src/mcp_agent/llm/providers/multipart_converter_anthropic.py +0 -0
  113. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/src/mcp_agent/llm/providers/multipart_converter_openai.py +0 -0
  114. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/src/mcp_agent/llm/providers/multipart_converter_tensorzero.py +0 -0
  115. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/src/mcp_agent/llm/providers/openai_multipart.py +0 -0
  116. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/src/mcp_agent/llm/providers/openai_utils.py +0 -0
  117. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/src/mcp_agent/llm/providers/sampling_converter_anthropic.py +0 -0
  118. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/src/mcp_agent/llm/providers/sampling_converter_openai.py +0 -0
  119. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/src/mcp_agent/llm/sampling_converter.py +0 -0
  120. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/src/mcp_agent/llm/sampling_format_converter.py +0 -0
  121. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/src/mcp_agent/logging/__init__.py +0 -0
  122. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/src/mcp_agent/logging/events.py +0 -0
  123. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/src/mcp_agent/logging/json_serializer.py +0 -0
  124. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/src/mcp_agent/logging/listeners.py +0 -0
  125. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/src/mcp_agent/logging/logger.py +0 -0
  126. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/src/mcp_agent/logging/rich_progress.py +0 -0
  127. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/src/mcp_agent/logging/transport.py +0 -0
  128. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/src/mcp_agent/mcp/__init__.py +0 -0
  129. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/src/mcp_agent/mcp/common.py +0 -0
  130. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/src/mcp_agent/mcp/gen_client.py +0 -0
  131. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/src/mcp_agent/mcp/helpers/__init__.py +0 -0
  132. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/src/mcp_agent/mcp/helpers/content_helpers.py +0 -0
  133. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/src/mcp_agent/mcp/interfaces.py +0 -0
  134. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/src/mcp_agent/mcp/logger_textio.py +0 -0
  135. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/src/mcp_agent/mcp/mcp_aggregator.py +0 -0
  136. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/src/mcp_agent/mcp/mcp_connection_manager.py +0 -0
  137. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/src/mcp_agent/mcp/mime_utils.py +0 -0
  138. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/src/mcp_agent/mcp/prompt_message_multipart.py +0 -0
  139. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/src/mcp_agent/mcp/prompt_render.py +0 -0
  140. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/src/mcp_agent/mcp/prompt_serialization.py +0 -0
  141. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/src/mcp_agent/mcp/prompts/__init__.py +0 -0
  142. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/src/mcp_agent/mcp/prompts/__main__.py +0 -0
  143. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/src/mcp_agent/mcp/prompts/prompt_constants.py +0 -0
  144. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/src/mcp_agent/mcp/prompts/prompt_helpers.py +0 -0
  145. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/src/mcp_agent/mcp/prompts/prompt_load.py +0 -0
  146. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/src/mcp_agent/mcp/prompts/prompt_template.py +0 -0
  147. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/src/mcp_agent/mcp/resource_utils.py +0 -0
  148. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/src/mcp_agent/mcp/sampling.py +0 -0
  149. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/src/mcp_agent/mcp_server/__init__.py +0 -0
  150. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/src/mcp_agent/mcp_server/agent_server.py +0 -0
  151. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/src/mcp_agent/mcp_server_registry.py +0 -0
  152. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/src/mcp_agent/progress_display.py +0 -0
  153. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/src/mcp_agent/resources/examples/data-analysis/analysis-campaign.py +0 -0
  154. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/src/mcp_agent/resources/examples/data-analysis/analysis.py +0 -0
  155. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/src/mcp_agent/resources/examples/data-analysis/fastagent.config.yaml +0 -0
  156. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/src/mcp_agent/resources/examples/data-analysis/mount-point/WA_Fn-UseC_-HR-Employee-Attrition.csv +0 -0
  157. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/src/mcp_agent/resources/examples/in_dev/agent_build.py +0 -0
  158. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/src/mcp_agent/resources/examples/in_dev/css-LICENSE.txt +0 -0
  159. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/src/mcp_agent/resources/examples/in_dev/slides.py +0 -0
  160. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/src/mcp_agent/resources/examples/internal/agent.py +0 -0
  161. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/src/mcp_agent/resources/examples/internal/fastagent.config.yaml +0 -0
  162. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/src/mcp_agent/resources/examples/internal/history_transfer.py +0 -0
  163. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/src/mcp_agent/resources/examples/internal/job.py +0 -0
  164. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/src/mcp_agent/resources/examples/internal/prompt_category.py +0 -0
  165. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/src/mcp_agent/resources/examples/internal/prompt_sizing.py +0 -0
  166. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/src/mcp_agent/resources/examples/internal/simple.txt +0 -0
  167. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/src/mcp_agent/resources/examples/internal/sizer.py +0 -0
  168. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/src/mcp_agent/resources/examples/internal/social.py +0 -0
  169. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/src/mcp_agent/resources/examples/mcp/state-transfer/agent_one.py +0 -0
  170. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/src/mcp_agent/resources/examples/mcp/state-transfer/agent_two.py +0 -0
  171. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/src/mcp_agent/resources/examples/mcp/state-transfer/fastagent.config.yaml +0 -0
  172. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/src/mcp_agent/resources/examples/mcp/state-transfer/fastagent.secrets.yaml.example +0 -0
  173. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/src/mcp_agent/resources/examples/prompting/__init__.py +0 -0
  174. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/src/mcp_agent/resources/examples/prompting/agent.py +0 -0
  175. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/src/mcp_agent/resources/examples/prompting/delimited_prompt.txt +0 -0
  176. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/src/mcp_agent/resources/examples/prompting/fastagent.config.yaml +0 -0
  177. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/src/mcp_agent/resources/examples/prompting/image_server.py +0 -0
  178. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/src/mcp_agent/resources/examples/prompting/prompt1.txt +0 -0
  179. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/src/mcp_agent/resources/examples/prompting/work_with_image.py +0 -0
  180. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/src/mcp_agent/resources/examples/researcher/fastagent.config.yaml +0 -0
  181. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/src/mcp_agent/resources/examples/researcher/researcher-eval.py +0 -0
  182. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/src/mcp_agent/resources/examples/researcher/researcher-imp.py +0 -0
  183. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/src/mcp_agent/resources/examples/researcher/researcher.py +0 -0
  184. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/src/mcp_agent/resources/examples/workflows/chaining.py +0 -0
  185. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/src/mcp_agent/resources/examples/workflows/evaluator.py +0 -0
  186. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/src/mcp_agent/resources/examples/workflows/fastagent.config.yaml +0 -0
  187. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/src/mcp_agent/resources/examples/workflows/human_input.py +0 -0
  188. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/src/mcp_agent/resources/examples/workflows/orchestrator.py +0 -0
  189. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/src/mcp_agent/resources/examples/workflows/parallel.py +0 -0
  190. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/src/mcp_agent/resources/examples/workflows/router.py +0 -0
  191. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/src/mcp_agent/resources/examples/workflows/short_story.txt +0 -0
  192. {fast_agent_mcp-0.2.25 → fast_agent_mcp-0.2.27}/src/mcp_agent/ui/console_display.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: fast-agent-mcp
3
- Version: 0.2.25
3
+ Version: 0.2.27
4
4
  Summary: Define, Prompt and Test MCP enabled Agents and Workflows
5
5
  Author-email: Shaun Smith <fastagent@llmindset.co.uk>
6
6
  License: Apache License
@@ -214,7 +214,7 @@ Requires-Dist: aiohttp>=3.11.13
214
214
  Requires-Dist: anthropic>=0.49.0
215
215
  Requires-Dist: azure-identity>=1.14.0
216
216
  Requires-Dist: fastapi>=0.115.6
217
- Requires-Dist: mcp>=1.8.0
217
+ Requires-Dist: mcp==1.9.1
218
218
  Requires-Dist: openai>=1.63.2
219
219
  Requires-Dist: opentelemetry-distro>=0.50b0
220
220
  Requires-Dist: opentelemetry-exporter-otlp-proto-http>=1.29.0
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "fast-agent-mcp"
3
- version = "0.2.25"
3
+ version = "0.2.27"
4
4
  description = "Define, Prompt and Test MCP enabled Agents and Workflows"
5
5
  readme = "README.md"
6
6
  license = { file = "LICENSE" }
@@ -15,7 +15,7 @@ classifiers = [
15
15
  requires-python = ">=3.10"
16
16
  dependencies = [
17
17
  "fastapi>=0.115.6",
18
- "mcp>=1.8.0",
18
+ "mcp==1.9.1",
19
19
  "opentelemetry-distro>=0.50b0",
20
20
  "opentelemetry-exporter-otlp-proto-http>=1.29.0",
21
21
  "pydantic-settings>=2.7.0",
@@ -86,19 +86,25 @@ class ModelFactory:
86
86
  "claude-3-7-sonnet-latest": Provider.ANTHROPIC,
87
87
  "claude-3-opus-20240229": Provider.ANTHROPIC,
88
88
  "claude-3-opus-latest": Provider.ANTHROPIC,
89
+ "claude-opus-4-0": Provider.ANTHROPIC,
90
+ "claude-opus-4-20250514": Provider.ANTHROPIC,
91
+ "claude-sonnet-4-20250514": Provider.ANTHROPIC,
92
+ "claude-sonnet-4-0": Provider.ANTHROPIC,
89
93
  "deepseek-chat": Provider.DEEPSEEK,
90
94
  # "deepseek-reasoner": Provider.DEEPSEEK, reinstate on release
91
95
  }
92
96
 
93
97
  MODEL_ALIASES = {
94
- "sonnet": "claude-3-7-sonnet-latest",
98
+ "sonnet": "claude-sonnet-4-0",
99
+ "sonnet4": "claude-sonnet-4-0",
95
100
  "sonnet35": "claude-3-5-sonnet-latest",
96
101
  "sonnet37": "claude-3-7-sonnet-latest",
97
- "claude": "claude-3-7-sonnet-latest",
102
+ "claude": "claude-sonnet-4-0",
98
103
  "haiku": "claude-3-5-haiku-latest",
99
104
  "haiku3": "claude-3-haiku-20240307",
100
105
  "haiku35": "claude-3-5-haiku-latest",
101
- "opus": "claude-3-opus-latest",
106
+ "opus": "claude-opus-4-0",
107
+ "opus4": "claude-opus-4-0",
102
108
  "opus3": "claude-3-opus-latest",
103
109
  "deepseekv3": "deepseek-chat",
104
110
  "deepseek": "deepseek-chat",
@@ -8,13 +8,14 @@ from typing import TYPE_CHECKING, Optional
8
8
 
9
9
  from mcp import ClientSession, ServerNotification
10
10
  from mcp.shared.session import (
11
+ ProgressFnT,
11
12
  ReceiveResultT,
12
13
  RequestId,
13
14
  SendNotificationT,
14
15
  SendRequestT,
15
16
  SendResultT,
16
17
  )
17
- from mcp.types import ErrorData, ListRootsResult, Root, ToolListChangedNotification
18
+ from mcp.types import ErrorData, Implementation, ListRootsResult, Root, ToolListChangedNotification
18
19
  from pydantic import FileUrl
19
20
 
20
21
  from mcp_agent.context_dependent import ContextDependent
@@ -63,11 +64,21 @@ class MCPAgentClientSession(ClientSession, ContextDependent):
63
64
 
64
65
  def __init__(self, *args, **kwargs) -> None:
65
66
  # Extract server_name if provided in kwargs
67
+ from importlib.metadata import version
68
+
69
+ version = version("fast-agent-mcp") or "dev"
70
+ fast_agent: Implementation = Implementation(name="fast-agent-mcp", version=version)
71
+
66
72
  self.session_server_name = kwargs.pop("server_name", None)
67
73
  # Extract the notification callbacks if provided
68
74
  self._tool_list_changed_callback = kwargs.pop("tool_list_changed_callback", None)
69
-
70
- super().__init__(*args, **kwargs, list_roots_callback=list_roots, sampling_callback=sample)
75
+ super().__init__(
76
+ *args,
77
+ **kwargs,
78
+ list_roots_callback=list_roots,
79
+ sampling_callback=sample,
80
+ client_info=fast_agent,
81
+ )
71
82
  self.server_config: Optional[MCPServerSettings] = None
72
83
 
73
84
  async def send_request(
@@ -75,11 +86,15 @@ class MCPAgentClientSession(ClientSession, ContextDependent):
75
86
  request: SendRequestT,
76
87
  result_type: type[ReceiveResultT],
77
88
  request_read_timeout_seconds: timedelta | None = None,
89
+ progress_callback: ProgressFnT | None = None,
78
90
  ) -> ReceiveResultT:
79
91
  logger.debug("send_request: request=", data=request.model_dump())
80
92
  try:
81
93
  result = await super().send_request(
82
- request, result_type, request_read_timeout_seconds=request_read_timeout_seconds
94
+ request,
95
+ result_type,
96
+ request_read_timeout_seconds=request_read_timeout_seconds,
97
+ progress_callback=progress_callback,
83
98
  )
84
99
  logger.debug("send_request: response=", data=result.model_dump())
85
100
  return result
@@ -127,7 +142,10 @@ class MCPAgentClientSession(ClientSession, ContextDependent):
127
142
  )
128
143
  # Use asyncio.create_task to prevent blocking the notification handler
129
144
  import asyncio
130
- asyncio.create_task(self._handle_tool_list_change_callback(self.session_server_name))
145
+
146
+ asyncio.create_task(
147
+ self._handle_tool_list_change_callback(self.session_server_name)
148
+ )
131
149
  else:
132
150
  logger.debug(
133
151
  f"Tool list changed for server '{self.session_server_name}' but no callback registered"
@@ -229,7 +229,9 @@ def register_prompt(file_path: Path, config: Optional[PromptConfig] = None) -> N
229
229
  # Create a function with properly typed parameters
230
230
  async def template_handler_with_vars(**kwargs):
231
231
  # Extract template variables from kwargs
232
- context = {var: kwargs.get(var) for var in template_vars if var in kwargs}
232
+ context = {
233
+ var: kwargs.get(var) for var in template_vars if var in kwargs
234
+ }
233
235
 
234
236
  # Check for missing variables
235
237
  missing_vars = [var for var in template_vars if var not in context]
@@ -247,7 +249,9 @@ def register_prompt(file_path: Path, config: Optional[PromptConfig] = None) -> N
247
249
 
248
250
  # Create a Prompt directly
249
251
  arguments = [
250
- PromptArgument(name=var, description=f"Template variable: {var}", required=True)
252
+ PromptArgument(
253
+ name=var, description=f"Template variable: {var}", required=True
254
+ )
251
255
  for var in template_vars
252
256
  ]
253
257
 
@@ -299,7 +303,9 @@ def register_prompt(file_path: Path, config: Optional[PromptConfig] = None) -> N
299
303
  )
300
304
  )
301
305
 
302
- logger.info(f"Registered resource: {resource_id} ({resource_file})")
306
+ logger.info(
307
+ f"Registered resource: {resource_id} ({resource_file})"
308
+ )
303
309
  except Exception as e:
304
310
  logger.error(f"Error registering prompt {file_path}: {e}", exc_info=True)
305
311
 
@@ -307,7 +313,9 @@ def register_prompt(file_path: Path, config: Optional[PromptConfig] = None) -> N
307
313
  def parse_args():
308
314
  """Parse command line arguments"""
309
315
  parser = argparse.ArgumentParser(description="FastMCP Prompt Server")
310
- parser.add_argument("prompt_files", nargs="+", type=str, help="Prompt files to serve")
316
+ parser.add_argument(
317
+ "prompt_files", nargs="+", type=str, help="Prompt files to serve"
318
+ )
311
319
  parser.add_argument(
312
320
  "--user-delimiter",
313
321
  type=str,
File without changes