fast-agent-mcp 0.2.54__tar.gz → 0.2.55__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.
Potentially problematic release.
This version of fast-agent-mcp might be problematic. Click here for more details.
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/PKG-INFO +2 -2
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/pyproject.toml +2 -2
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/agents/base_agent.py +54 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/llm/model_database.py +4 -1
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/llm/providers/augmented_llm_aliyun.py +7 -4
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/llm/providers/augmented_llm_groq.py +1 -1
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/llm/providers/augmented_llm_openai.py +2 -2
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/mcp/interfaces.py +3 -1
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/mcp/mcp_aggregator.py +52 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/.gitignore +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/LICENSE +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/README.md +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/examples/azure-openai/fastagent.config.yaml +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/examples/bedrock/fast-agent.config.yaml +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/examples/custom-agents/agent.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/examples/custom-agents/fastagent.config.yaml +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/examples/data-analysis/analysis-campaign.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/examples/data-analysis/analysis.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/examples/data-analysis/fastagent.config.yaml +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/examples/data-analysis/mount-point/WA_Fn-UseC_-HR-Employee-Attrition.csv +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/examples/mcp/elicitations/elicitation_account_server.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/examples/mcp/elicitations/elicitation_forms_server.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/examples/mcp/elicitations/elicitation_game_server.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/examples/mcp/elicitations/fastagent.config.yaml +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/examples/mcp/elicitations/fastagent.secrets.yaml.example +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/examples/mcp/elicitations/forms_demo.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/examples/mcp/elicitations/game_character.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/examples/mcp/elicitations/game_character_handler.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/examples/mcp/elicitations/tool_call.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/examples/mcp/mcp-filtering/fastagent.config.yaml +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/examples/mcp/mcp-filtering/fastagent.secrets.yaml.example +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/examples/mcp/mcp-filtering/mcp_server.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/examples/mcp/mcp-filtering/test_mcp_filtering.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/examples/mcp/state-transfer/agent_one.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/examples/mcp/state-transfer/agent_two.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/examples/mcp/state-transfer/fastagent.config.yaml +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/examples/mcp/state-transfer/fastagent.secrets.yaml.example +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/examples/mcp/vision-examples/cat.png +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/examples/mcp/vision-examples/example1.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/examples/mcp/vision-examples/example2.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/examples/mcp/vision-examples/example3.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/examples/mcp/vision-examples/fastagent.config.yaml +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/examples/otel/agent.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/examples/otel/agent2.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/examples/otel/docker-compose.yaml +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/examples/otel/fastagent.config.yaml +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/examples/researcher/fastagent.config.yaml +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/examples/researcher/researcher-eval.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/examples/researcher/researcher-imp.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/examples/researcher/researcher.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/examples/tensorzero/.env.sample +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/examples/tensorzero/Makefile +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/examples/tensorzero/README.md +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/examples/tensorzero/agent.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/examples/tensorzero/demo_images/clam.jpg +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/examples/tensorzero/demo_images/crab.png +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/examples/tensorzero/demo_images/shrimp.png +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/examples/tensorzero/docker-compose.yml +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/examples/tensorzero/fastagent.config.yaml +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/examples/tensorzero/image_demo.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/examples/tensorzero/mcp_server/Dockerfile +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/examples/tensorzero/mcp_server/entrypoint.sh +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/examples/tensorzero/mcp_server/mcp_server.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/examples/tensorzero/mcp_server/pyproject.toml +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/examples/tensorzero/simple_agent.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/examples/tensorzero/tensorzero_config/system_schema.json +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/examples/tensorzero/tensorzero_config/system_template.minijinja +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/examples/tensorzero/tensorzero_config/tensorzero.toml +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/examples/workflows/chaining.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/examples/workflows/evaluator.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/examples/workflows/fastagent.config.yaml +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/examples/workflows/graded_report.md +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/examples/workflows/human_input.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/examples/workflows/orchestrator.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/examples/workflows/parallel.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/examples/workflows/router.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/examples/workflows/short_story.md +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/examples/workflows/short_story.txt +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/hatch_build.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/__init__.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/agents/__init__.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/agents/agent.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/agents/workflow/__init__.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/agents/workflow/chain_agent.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/agents/workflow/evaluator_optimizer.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/agents/workflow/iterative_planner.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/agents/workflow/orchestrator_agent.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/agents/workflow/orchestrator_models.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/agents/workflow/orchestrator_prompts.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/agents/workflow/parallel_agent.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/agents/workflow/router_agent.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/app.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/cli/__init__.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/cli/__main__.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/cli/commands/check_config.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/cli/commands/go.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/cli/commands/quickstart.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/cli/commands/server_helpers.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/cli/commands/setup.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/cli/commands/url_parser.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/cli/constants.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/cli/main.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/cli/terminal.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/config.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/console.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/context.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/context_dependent.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/core/__init__.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/core/agent_app.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/core/agent_types.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/core/direct_decorators.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/core/direct_factory.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/core/enhanced_prompt.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/core/error_handling.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/core/exceptions.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/core/fastagent.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/core/interactive_prompt.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/core/mcp_content.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/core/mermaid_utils.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/core/prompt.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/core/request_params.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/core/usage_display.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/core/validation.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/event_progress.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/executor/__init__.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/executor/executor.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/executor/task_registry.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/executor/workflow_signal.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/human_input/__init__.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/human_input/elicitation_form.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/human_input/elicitation_forms.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/human_input/elicitation_handler.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/human_input/elicitation_state.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/human_input/form_fields.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/human_input/handler.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/human_input/simple_form.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/human_input/types.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/llm/__init__.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/llm/augmented_llm.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/llm/augmented_llm_passthrough.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/llm/augmented_llm_playback.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/llm/augmented_llm_silent.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/llm/augmented_llm_slow.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/llm/memory.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/llm/model_factory.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/llm/prompt_utils.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/llm/provider_key_manager.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/llm/provider_types.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/llm/providers/__init__.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/llm/providers/anthropic_utils.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/llm/providers/augmented_llm_anthropic.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/llm/providers/augmented_llm_azure.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/llm/providers/augmented_llm_bedrock.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/llm/providers/augmented_llm_deepseek.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/llm/providers/augmented_llm_generic.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/llm/providers/augmented_llm_google_native.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/llm/providers/augmented_llm_google_oai.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/llm/providers/augmented_llm_openrouter.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/llm/providers/augmented_llm_tensorzero_openai.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/llm/providers/augmented_llm_xai.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/llm/providers/google_converter.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/llm/providers/multipart_converter_anthropic.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/llm/providers/multipart_converter_openai.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/llm/providers/openai_multipart.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/llm/providers/openai_utils.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/llm/providers/sampling_converter_anthropic.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/llm/providers/sampling_converter_openai.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/llm/sampling_converter.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/llm/sampling_format_converter.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/llm/usage_tracking.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/logging/__init__.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/logging/events.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/logging/json_serializer.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/logging/listeners.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/logging/logger.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/logging/rich_progress.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/logging/transport.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/mcp/__init__.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/mcp/common.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/mcp/elicitation_factory.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/mcp/elicitation_handlers.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/mcp/gen_client.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/mcp/helpers/__init__.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/mcp/helpers/content_helpers.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/mcp/helpers/server_config_helpers.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/mcp/hf_auth.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/mcp/logger_textio.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/mcp/mcp_agent_client_session.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/mcp/mcp_connection_manager.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/mcp/mime_utils.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/mcp/prompt_message_multipart.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/mcp/prompt_render.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/mcp/prompt_serialization.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/mcp/prompts/__init__.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/mcp/prompts/__main__.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/mcp/prompts/prompt_constants.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/mcp/prompts/prompt_helpers.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/mcp/prompts/prompt_load.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/mcp/prompts/prompt_server.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/mcp/prompts/prompt_template.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/mcp/resource_utils.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/mcp/sampling.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/mcp_server/__init__.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/mcp_server/agent_server.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/mcp_server_registry.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/progress_display.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/py.typed +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/resources/examples/data-analysis/analysis-campaign.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/resources/examples/data-analysis/analysis.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/resources/examples/data-analysis/fastagent.config.yaml +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/resources/examples/data-analysis/mount-point/WA_Fn-UseC_-HR-Employee-Attrition.csv +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/resources/examples/mcp/elicitations/elicitation_account_server.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/resources/examples/mcp/elicitations/elicitation_forms_server.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/resources/examples/mcp/elicitations/elicitation_game_server.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/resources/examples/mcp/elicitations/fastagent.config.yaml +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/resources/examples/mcp/elicitations/fastagent.secrets.yaml.example +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/resources/examples/mcp/elicitations/forms_demo.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/resources/examples/mcp/elicitations/game_character.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/resources/examples/mcp/elicitations/game_character_handler.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/resources/examples/mcp/elicitations/tool_call.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/resources/examples/mcp/state-transfer/agent_one.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/resources/examples/mcp/state-transfer/agent_two.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/resources/examples/mcp/state-transfer/fastagent.config.yaml +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/resources/examples/mcp/state-transfer/fastagent.secrets.yaml.example +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/resources/examples/researcher/fastagent.config.yaml +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/resources/examples/researcher/researcher-eval.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/resources/examples/researcher/researcher-imp.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/resources/examples/researcher/researcher.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/resources/examples/tensorzero/.env.sample +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/resources/examples/tensorzero/Makefile +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/resources/examples/tensorzero/README.md +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/resources/examples/tensorzero/agent.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/resources/examples/tensorzero/demo_images/clam.jpg +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/resources/examples/tensorzero/demo_images/crab.png +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/resources/examples/tensorzero/demo_images/shrimp.png +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/resources/examples/tensorzero/docker-compose.yml +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/resources/examples/tensorzero/fastagent.config.yaml +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/resources/examples/tensorzero/image_demo.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/resources/examples/tensorzero/mcp_server/.python-version +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/resources/examples/tensorzero/mcp_server/Dockerfile +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/resources/examples/tensorzero/mcp_server/entrypoint.sh +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/resources/examples/tensorzero/mcp_server/mcp_server.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/resources/examples/tensorzero/mcp_server/pyproject.toml +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/resources/examples/tensorzero/simple_agent.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/resources/examples/tensorzero/tensorzero_config/system_schema.json +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/resources/examples/tensorzero/tensorzero_config/system_template.minijinja +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/resources/examples/tensorzero/tensorzero_config/tensorzero.toml +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/resources/examples/workflows/chaining.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/resources/examples/workflows/evaluator.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/resources/examples/workflows/fastagent.config.yaml +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/resources/examples/workflows/graded_report.md +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/resources/examples/workflows/human_input.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/resources/examples/workflows/orchestrator.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/resources/examples/workflows/parallel.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/resources/examples/workflows/router.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/resources/examples/workflows/short_story.md +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/resources/examples/workflows/short_story.txt +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/tools/tool_definition.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/ui/console_display.py +0 -0
- {fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/ui/console_display_legacy.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: fast-agent-mcp
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.55
|
|
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
|
|
@@ -218,7 +218,7 @@ Requires-Dist: deprecated>=1.2.18
|
|
|
218
218
|
Requires-Dist: email-validator>=2.2.0
|
|
219
219
|
Requires-Dist: fastapi>=0.115.6
|
|
220
220
|
Requires-Dist: google-genai>=1.27.0
|
|
221
|
-
Requires-Dist: mcp==1.12.
|
|
221
|
+
Requires-Dist: mcp==1.12.4
|
|
222
222
|
Requires-Dist: openai>=1.97.1
|
|
223
223
|
Requires-Dist: opentelemetry-distro>=0.55b0
|
|
224
224
|
Requires-Dist: opentelemetry-exporter-otlp-proto-http>=1.7.0
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "fast-agent-mcp"
|
|
3
|
-
version = "0.2.
|
|
3
|
+
version = "0.2.55"
|
|
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.13"
|
|
16
16
|
dependencies = [
|
|
17
17
|
"fastapi>=0.115.6",
|
|
18
|
-
"mcp==1.12.
|
|
18
|
+
"mcp==1.12.4",
|
|
19
19
|
"opentelemetry-distro>=0.55b0",
|
|
20
20
|
"opentelemetry-exporter-otlp-proto-http>=1.7.0",
|
|
21
21
|
"pydantic-settings>=2.7.0",
|
|
@@ -783,6 +783,60 @@ class BaseAgent(MCPAggregator, AgentProtocol):
|
|
|
783
783
|
|
|
784
784
|
return result
|
|
785
785
|
|
|
786
|
+
async def list_mcp_tools(self, server_name: str | None = None) -> Mapping[str, List[Tool]]:
|
|
787
|
+
"""
|
|
788
|
+
List all tools available to this agent, grouped by server and filtered by configuration.
|
|
789
|
+
|
|
790
|
+
Args:
|
|
791
|
+
server_name: Optional server name to list tools from
|
|
792
|
+
|
|
793
|
+
Returns:
|
|
794
|
+
Dictionary mapping server names to lists of Tool objects (with original names, not namespaced)
|
|
795
|
+
"""
|
|
796
|
+
if not self.initialized:
|
|
797
|
+
await self.initialize()
|
|
798
|
+
|
|
799
|
+
# Get all tools from the parent class
|
|
800
|
+
result = await super().list_mcp_tools(server_name)
|
|
801
|
+
|
|
802
|
+
# Apply filtering if tools are specified in config
|
|
803
|
+
if self.config.tools is not None:
|
|
804
|
+
filtered_result = {}
|
|
805
|
+
for server, tools in result.items():
|
|
806
|
+
# Check if this server has tool filters
|
|
807
|
+
if server in self.config.tools:
|
|
808
|
+
filtered_tools = []
|
|
809
|
+
for tool in tools:
|
|
810
|
+
# Check if tool matches any pattern for this server
|
|
811
|
+
for pattern in self.config.tools[server]:
|
|
812
|
+
if self._matches_pattern(tool.name, pattern, server):
|
|
813
|
+
filtered_tools.append(tool)
|
|
814
|
+
break
|
|
815
|
+
if filtered_tools:
|
|
816
|
+
filtered_result[server] = filtered_tools
|
|
817
|
+
result = filtered_result
|
|
818
|
+
|
|
819
|
+
# Add human input tool to a special server if human input is configured
|
|
820
|
+
if self.human_input_callback:
|
|
821
|
+
from mcp.server.fastmcp.tools import Tool as FastTool
|
|
822
|
+
|
|
823
|
+
human_input_tool: FastTool = FastTool.from_function(self.request_human_input)
|
|
824
|
+
special_server_name = "__human_input__"
|
|
825
|
+
|
|
826
|
+
# If the special server doesn't exist in result, create it
|
|
827
|
+
if special_server_name not in result:
|
|
828
|
+
result[special_server_name] = []
|
|
829
|
+
|
|
830
|
+
result[special_server_name].append(
|
|
831
|
+
Tool(
|
|
832
|
+
name=HUMAN_INPUT_TOOL_NAME,
|
|
833
|
+
description=human_input_tool.description,
|
|
834
|
+
inputSchema=human_input_tool.parameters,
|
|
835
|
+
)
|
|
836
|
+
)
|
|
837
|
+
|
|
838
|
+
return result
|
|
839
|
+
|
|
786
840
|
@property
|
|
787
841
|
def agent_type(self) -> AgentType:
|
|
788
842
|
"""
|
|
@@ -91,7 +91,10 @@ class ModelDatabase:
|
|
|
91
91
|
)
|
|
92
92
|
|
|
93
93
|
QWEN_STANDARD = ModelParameters(
|
|
94
|
-
context_window=32000,
|
|
94
|
+
context_window=32000,
|
|
95
|
+
max_output_tokens=8192,
|
|
96
|
+
tokenizes=QWEN_MULTIMODAL,
|
|
97
|
+
json_mode="object",
|
|
95
98
|
)
|
|
96
99
|
QWEN3_REASONER = ModelParameters(
|
|
97
100
|
context_window=131072,
|
{fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/llm/providers/augmented_llm_aliyun.py
RENAMED
|
@@ -1,24 +1,26 @@
|
|
|
1
1
|
from mcp_agent.core.request_params import RequestParams
|
|
2
2
|
from mcp_agent.llm.provider_types import Provider
|
|
3
|
+
from mcp_agent.llm.providers.augmented_llm_groq import GroqAugmentedLLM
|
|
3
4
|
from mcp_agent.llm.providers.augmented_llm_openai import OpenAIAugmentedLLM
|
|
4
5
|
|
|
5
6
|
ALIYUN_BASE_URL = "https://dashscope.aliyuncs.com/compatible-mode/v1"
|
|
6
7
|
DEFAULT_QWEN_MODEL = "qwen-turbo"
|
|
7
8
|
|
|
8
9
|
|
|
9
|
-
class AliyunAugmentedLLM(
|
|
10
|
+
class AliyunAugmentedLLM(GroqAugmentedLLM):
|
|
10
11
|
def __init__(self, *args, **kwargs) -> None:
|
|
11
|
-
|
|
12
|
+
OpenAIAugmentedLLM.__init__(self, *args, provider=Provider.ALIYUN, **kwargs)
|
|
12
13
|
|
|
13
14
|
def _initialize_default_params(self, kwargs: dict) -> RequestParams:
|
|
14
15
|
"""Initialize Aliyun-specific default parameters"""
|
|
15
16
|
# Get base defaults from parent (includes ModelDatabase lookup)
|
|
16
17
|
base_params = super()._initialize_default_params(kwargs)
|
|
17
|
-
|
|
18
|
+
|
|
18
19
|
# Override with Aliyun-specific settings
|
|
19
20
|
chosen_model = kwargs.get("model", DEFAULT_QWEN_MODEL)
|
|
20
21
|
base_params.model = chosen_model
|
|
21
|
-
|
|
22
|
+
base_params.parallel_tool_calls = True
|
|
23
|
+
|
|
22
24
|
return base_params
|
|
23
25
|
|
|
24
26
|
def _base_url(self) -> str:
|
|
@@ -27,3 +29,4 @@ class AliyunAugmentedLLM(OpenAIAugmentedLLM):
|
|
|
27
29
|
base_url = self.context.config.aliyun.base_url
|
|
28
30
|
|
|
29
31
|
return base_url if base_url else ALIYUN_BASE_URL
|
|
32
|
+
|
{fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/llm/providers/augmented_llm_groq.py
RENAMED
|
@@ -46,7 +46,7 @@ class GroqAugmentedLLM(OpenAIAugmentedLLM):
|
|
|
46
46
|
assert self.default_request_params
|
|
47
47
|
llm_model = self.default_request_params.model or DEFAULT_GROQ_MODEL
|
|
48
48
|
json_mode: str | None = ModelDatabase.get_json_mode(llm_model)
|
|
49
|
-
if "
|
|
49
|
+
if "object" == json_mode:
|
|
50
50
|
request_params.response_format = {"type": "json_object"}
|
|
51
51
|
|
|
52
52
|
# Get the full schema and extract just the properties
|
{fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/llm/providers/augmented_llm_openai.py
RENAMED
|
@@ -333,8 +333,8 @@ class OpenAIAugmentedLLM(AugmentedLLM[ChatCompletionMessageParam, ChatCompletion
|
|
|
333
333
|
]
|
|
334
334
|
|
|
335
335
|
if not available_tools:
|
|
336
|
-
if self.provider
|
|
337
|
-
available_tools = None # deepseek does not allow empty array
|
|
336
|
+
if self.provider in [Provider.DEEPSEEK, Provider.ALIYUN]:
|
|
337
|
+
available_tools = None # deepseek/aliyun does not allow empty array
|
|
338
338
|
else:
|
|
339
339
|
available_tools = []
|
|
340
340
|
|
|
@@ -25,7 +25,7 @@ from a2a.types import AgentCard
|
|
|
25
25
|
from anyio.streams.memory import MemoryObjectReceiveStream, MemoryObjectSendStream
|
|
26
26
|
from deprecated import deprecated
|
|
27
27
|
from mcp import ClientSession
|
|
28
|
-
from mcp.types import GetPromptResult, Prompt, PromptMessage, ReadResourceResult
|
|
28
|
+
from mcp.types import GetPromptResult, Prompt, PromptMessage, ReadResourceResult, Tool
|
|
29
29
|
from pydantic import BaseModel
|
|
30
30
|
|
|
31
31
|
from mcp_agent.core.agent_types import AgentType
|
|
@@ -203,6 +203,8 @@ class AgentProtocol(AugmentedLLMProtocol, Protocol):
|
|
|
203
203
|
|
|
204
204
|
async def list_resources(self, server_name: str | None = None) -> Mapping[str, List[str]]: ...
|
|
205
205
|
|
|
206
|
+
async def list_mcp_tools(self, server_name: str | None = None) -> Mapping[str, List[Tool]]: ...
|
|
207
|
+
|
|
206
208
|
async def get_resource(
|
|
207
209
|
self, resource_uri: str, server_name: str | None = None
|
|
208
210
|
) -> ReadResourceResult:
|
|
@@ -1232,3 +1232,55 @@ class MCPAggregator(ContextDependent):
|
|
|
1232
1232
|
logger.error(f"Error fetching resources from {s_name}: {e}")
|
|
1233
1233
|
|
|
1234
1234
|
return results
|
|
1235
|
+
|
|
1236
|
+
async def list_mcp_tools(self, server_name: str | None = None) -> Dict[str, List[Tool]]:
|
|
1237
|
+
"""
|
|
1238
|
+
List available tools from one or all servers, grouped by server name.
|
|
1239
|
+
|
|
1240
|
+
Args:
|
|
1241
|
+
server_name: Optional server name to list tools from. If not provided,
|
|
1242
|
+
lists tools from all servers.
|
|
1243
|
+
|
|
1244
|
+
Returns:
|
|
1245
|
+
Dictionary mapping server names to lists of Tool objects (with original names, not namespaced)
|
|
1246
|
+
"""
|
|
1247
|
+
if not self.initialized:
|
|
1248
|
+
await self.load_servers()
|
|
1249
|
+
|
|
1250
|
+
results: Dict[str, List[Tool]] = {}
|
|
1251
|
+
|
|
1252
|
+
# Get the list of servers to check
|
|
1253
|
+
servers_to_check = [server_name] if server_name else self.server_names
|
|
1254
|
+
|
|
1255
|
+
# For each server, try to list its tools
|
|
1256
|
+
for s_name in servers_to_check:
|
|
1257
|
+
if s_name not in self.server_names:
|
|
1258
|
+
logger.error(f"Server '{s_name}' not found")
|
|
1259
|
+
continue
|
|
1260
|
+
|
|
1261
|
+
# Initialize empty list for this server
|
|
1262
|
+
results[s_name] = []
|
|
1263
|
+
|
|
1264
|
+
# Check if server supports tools capability
|
|
1265
|
+
if not await self.server_supports_feature(s_name, "tools"):
|
|
1266
|
+
logger.debug(f"Server '{s_name}' does not support tools")
|
|
1267
|
+
continue
|
|
1268
|
+
|
|
1269
|
+
try:
|
|
1270
|
+
# Use the _execute_on_server method to call list_tools on the server
|
|
1271
|
+
result = await self._execute_on_server(
|
|
1272
|
+
server_name=s_name,
|
|
1273
|
+
operation_type="tools-list",
|
|
1274
|
+
operation_name="",
|
|
1275
|
+
method_name="list_tools",
|
|
1276
|
+
method_args={},
|
|
1277
|
+
)
|
|
1278
|
+
|
|
1279
|
+
# Get tools from result (these have original names, not namespaced)
|
|
1280
|
+
tools = getattr(result, "tools", [])
|
|
1281
|
+
results[s_name] = tools
|
|
1282
|
+
|
|
1283
|
+
except Exception as e:
|
|
1284
|
+
logger.error(f"Error fetching tools from {s_name}: {e}")
|
|
1285
|
+
|
|
1286
|
+
return results
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/examples/custom-agents/fastagent.config.yaml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/examples/data-analysis/fastagent.config.yaml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/examples/mcp/elicitations/elicitation_game_server.py
RENAMED
|
File without changes
|
{fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/examples/mcp/elicitations/fastagent.config.yaml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/examples/mcp/elicitations/game_character_handler.py
RENAMED
|
File without changes
|
|
File without changes
|
{fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/examples/mcp/mcp-filtering/fastagent.config.yaml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/examples/mcp/mcp-filtering/test_mcp_filtering.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/examples/mcp/state-transfer/fastagent.config.yaml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/examples/mcp/vision-examples/fastagent.config.yaml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/examples/tensorzero/mcp_server/entrypoint.sh
RENAMED
|
File without changes
|
{fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/examples/tensorzero/mcp_server/mcp_server.py
RENAMED
|
File without changes
|
{fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/examples/tensorzero/mcp_server/pyproject.toml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/agents/workflow/chain_agent.py
RENAMED
|
File without changes
|
{fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/agents/workflow/evaluator_optimizer.py
RENAMED
|
File without changes
|
{fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/agents/workflow/iterative_planner.py
RENAMED
|
File without changes
|
{fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/agents/workflow/orchestrator_agent.py
RENAMED
|
File without changes
|
{fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/agents/workflow/orchestrator_models.py
RENAMED
|
File without changes
|
|
File without changes
|
{fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/agents/workflow/parallel_agent.py
RENAMED
|
File without changes
|
{fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/agents/workflow/router_agent.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/cli/commands/server_helpers.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/human_input/elicitation_form.py
RENAMED
|
File without changes
|
{fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/human_input/elicitation_forms.py
RENAMED
|
File without changes
|
{fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/human_input/elicitation_handler.py
RENAMED
|
File without changes
|
{fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/human_input/elicitation_state.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fast_agent_mcp-0.2.54 → fast_agent_mcp-0.2.55}/src/mcp_agent/llm/augmented_llm_passthrough.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|