fast-agent-mcp 0.0.7__py3-none-any.whl → 0.0.9__py3-none-any.whl

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.

Files changed (33) hide show
  1. {fast_agent_mcp-0.0.7.dist-info → fast_agent_mcp-0.0.9.dist-info}/METADATA +24 -57
  2. {fast_agent_mcp-0.0.7.dist-info → fast_agent_mcp-0.0.9.dist-info}/RECORD +31 -24
  3. mcp_agent/agents/agent.py +8 -4
  4. mcp_agent/app.py +5 -1
  5. mcp_agent/cli/commands/bootstrap.py +183 -121
  6. mcp_agent/cli/commands/setup.py +20 -16
  7. mcp_agent/core/__init__.py +0 -0
  8. mcp_agent/core/exceptions.py +47 -0
  9. mcp_agent/core/fastagent.py +250 -124
  10. mcp_agent/core/server_validation.py +44 -0
  11. mcp_agent/event_progress.py +4 -1
  12. mcp_agent/logging/rich_progress.py +11 -0
  13. mcp_agent/mcp/mcp_connection_manager.py +11 -2
  14. mcp_agent/resources/examples/data-analysis/analysis.py +35 -0
  15. mcp_agent/resources/examples/data-analysis/fastagent.config.yaml +22 -0
  16. mcp_agent/resources/examples/data-analysis/mount-point/WA_Fn-UseC_-HR-Employee-Attrition.csv +1471 -0
  17. mcp_agent/resources/examples/workflows/chaining.py +31 -0
  18. mcp_agent/resources/examples/{decorator/optimizer.py → workflows/evaluator.py} +7 -10
  19. mcp_agent/resources/examples/workflows/fastagent.config.yaml +9 -0
  20. mcp_agent/resources/examples/workflows/human_input.py +25 -0
  21. mcp_agent/resources/examples/{decorator → workflows}/orchestrator.py +20 -17
  22. mcp_agent/resources/examples/{decorator → workflows}/parallel.py +14 -18
  23. mcp_agent/resources/examples/{decorator → workflows}/router.py +9 -10
  24. mcp_agent/workflows/llm/augmented_llm_anthropic.py +54 -14
  25. mcp_agent/workflows/llm/augmented_llm_openai.py +38 -9
  26. mcp_agent/workflows/orchestrator/orchestrator.py +53 -108
  27. mcp_agent/resources/examples/decorator/main.py +0 -26
  28. mcp_agent/resources/examples/decorator/tiny.py +0 -22
  29. {fast_agent_mcp-0.0.7.dist-info → fast_agent_mcp-0.0.9.dist-info}/WHEEL +0 -0
  30. {fast_agent_mcp-0.0.7.dist-info → fast_agent_mcp-0.0.9.dist-info}/entry_points.txt +0 -0
  31. {fast_agent_mcp-0.0.7.dist-info → fast_agent_mcp-0.0.9.dist-info}/licenses/LICENSE +0 -0
  32. /mcp_agent/resources/examples/mcp_researcher/{main-evalopt.py → researcher-eval.py} +0 -0
  33. /mcp_agent/resources/examples/mcp_researcher/{main.py → researcher.py} +0 -0
@@ -1,7 +1,7 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: fast-agent-mcp
3
- Version: 0.0.7
4
- Summary: Build, Test, Deploy composable MCP Agent Workflows.
3
+ Version: 0.0.9
4
+ Summary: Define, Prompt and Test MCP enabled Agents and Workflows
5
5
  Author-email: Shaun Smith <fastagent@llmindset.co.uk>, Sarmad Qadri <sarmad@lastmileai.dev>
6
6
  License: Apache License
7
7
  Version 2.0, January 2004
@@ -219,7 +219,6 @@ Requires-Dist: opentelemetry-distro>=0.50b0
219
219
  Requires-Dist: opentelemetry-exporter-otlp-proto-http>=1.29.0
220
220
  Requires-Dist: pydantic-settings>=2.7.0
221
221
  Requires-Dist: pydantic>=2.10.4
222
- Requires-Dist: pyreadline3>=3.5.4
223
222
  Requires-Dist: pyyaml>=6.0.2
224
223
  Requires-Dist: rich>=13.9.4
225
224
  Requires-Dist: scikit-learn>=1.6.0
@@ -238,35 +237,39 @@ Description-Content-Type: text/markdown
238
237
  ## FastAgent
239
238
 
240
239
  <p align="center">
241
- <a href="https://pypi.org/project/mcp-agent/"><img src="https://img.shields.io/pypi/v/mcp-agent?color=%2334D058&label=pypi" /></a>
242
- <a href="https://github.com/lastmile-ai/mcp-agent/issues"><img src="https://img.shields.io/github/issues-raw/lastmile-ai/mcp-agent" /></a>
240
+ <a href="https://pypi.org/project/fast-agent-mcp/"><img src="https://img.shields.io/pypi/v/fast-agent-mcp?color=%2334D058&label=pypi" /></a>
241
+ <a href="https://github.com/evalstate/fast-agent/issues"><img src="https://img.shields.io/github/issues-raw/evalstate/fast-agent" /></a>
243
242
  <a href="https://lmai.link/discord/mcp-agent"><img src="https://shields.io/discord/1089284610329952357" alt="discord" /></a>
244
- <img alt="Pepy Total Downloads" src="https://img.shields.io/pepy/dt/mcp-agent?label=pypi%20%7C%20downloads"/>
245
- <a href="https://github.com/lastmile-ai/mcp-agent/blob/main/LICENSE"><img src="https://img.shields.io/pypi/l/mcp-agent" /></a>
243
+ <img alt="Pepy Total Downloads" src="https://img.shields.io/pepy/dt/fast-agent-mcp?label=pypi%20%7C%20downloads"/>
244
+ <a href="https://github.com/evalstate/fast-agent-mcp/blob/main/LICENSE"><img src="https://img.shields.io/pypi/l/fast-agent-mcp" /></a>
246
245
  </p>
247
246
 
248
247
  ## Overview
249
248
 
250
- **`mcp-agent`** is a simple, composable framework to build agents using [Model Context Protocol](https://modelcontextprotocol.io/introduction).
249
+ **`fast-agent`** lets you define, test and compose agents and tools in minutes.
251
250
 
252
- **Inspiration**: Anthropic announced 2 foundational updates for AI application developers:
251
+ ### Get started:
253
252
 
254
- 1. [Model Context Protocol](https://www.anthropic.com/news/model-context-protocol) - a standardized interface to let any software be accessible to AI assistants via MCP servers.
255
- 2. [Building Effective Agents](https://www.anthropic.com/research/building-effective-agents) - a seminal writeup on simple, composable patterns for building production-ready AI agents.
253
+ Install the [uv package manager](https://docs.astral.sh/uv/).
256
254
 
257
- `mcp-agent` puts these two foundational pieces into an AI application framework:
255
+ `uv pip install fast-agent-mcp` - download and install fast-agent
258
256
 
259
- 1. It handles the pesky business of managing the lifecycle of MCP server connections so you don't have to.
260
- 2. It implements every pattern described in Building Effective Agents, and does so in a _composable_ way, allowing you to chain these patterns together.
261
- 3. **Bonus**: It implements [OpenAI's Swarm](https://github.com/openai/swarm) pattern for multi-agent orchestration, but in a model-agnostic way.
257
+ `fast-agent setup` - setup an agent and configuration files.
262
258
 
263
- Altogether, this is the simplest and easiest way to build robust agent applications. Much like MCP, this project is in early development.
264
- We welcome all kinds of [contributions](/CONTRIBUTING.md), feedback and your help in growing this to become a new standard.
259
+ `uv run agent.py` - run and interact with your first agent.
260
+
261
+ `fast-agent bootstrap workflow` - generate example agents and workflows demonstrating each of the patterns from Anthropic's "[Building Effective Agents](https://www.anthropic.com/research/building-effective-agents)" paper.
262
+
263
+ `fast-agent bootstrap` -
264
+
265
+ It's built on top of [mcp-agent](todo).
265
266
 
266
267
  ### llmindset.co.uk fork:
267
268
 
268
- - "FastAgent" style prototyping
269
- - Interactive Mode
269
+ - "FastAgent" style prototyping, with per-agent models
270
+ - Warm-up / Post-Workflow Agent Interactions
271
+ - Quick Setup
272
+ - Interactive Prompt Mode
270
273
  - Simple Model Selection with aliases
271
274
  - User/Assistant and Tool Call message display
272
275
  - MCP Sever Environment Variable support
@@ -274,49 +277,13 @@ We welcome all kinds of [contributions](/CONTRIBUTING.md), feedback and your hel
274
277
  - Comprehensive Progress display
275
278
  - JSONL file logging with secret revokation
276
279
  - OpenAI o1/o3-mini support with reasoning level
277
- - Enhaned Human Input Messaging and Handling
280
+ - Enhanced Human Input Messaging and Handling
281
+ - Declarative workflows
278
282
 
279
283
  ## Get Started
280
284
 
281
285
  We recommend using [uv](https://docs.astral.sh/uv/) to manage your Python projects:
282
286
 
283
- ```bash
284
- uv add "mcp-agent"
285
- ```
286
-
287
- Alternatively:
288
-
289
- ```bash
290
- pip install mcp-agent
291
- ```
292
-
293
- ### Quickstart
294
-
295
- > [!TIP]
296
- > The [`examples`](/examples) directory has several example applications to get started with.
297
- > To run an example, clone this repo, then:
298
- >
299
- > ```bash
300
- > cd examples/mcp_basic_agent # Or any other example
301
- > cp mcp_agent.secrets.yaml.example mcp_agent.secrets.yaml # Update API keys
302
- > uv run main.py
303
- > ```
304
-
305
287
  ## Table of Contents
306
288
 
307
- ## Workflows
308
-
309
- mcp-agent provides implementations for every pattern in Anthropic’s [Building Effective Agents](https://www.anthropic.com/research/building-effective-agents), as well as the OpenAI [Swarm](https://github.com/openai/swarm) pattern.
310
- Each pattern is model-agnostic, and exposed as an `AugmentedLLM`, making everything very composable.
311
-
312
- </details>
313
-
314
- ### Signaling and Human Input
315
-
316
- **Signaling**: The framework can pause/resume tasks. The agent or LLM might “signal” that it needs user input, so the workflow awaits. A developer may signal during a workflow to seek approval or review before continuing with a workflow.
317
-
318
- **Human Input**: If an Agent has a `human_input_callback`, the LLM can call a `__human_input__` tool to request user input mid-workflow.
319
-
320
- ## Contributing
321
-
322
289
  We welcome any and all kinds of contributions. Please see the [CONTRIBUTING guidelines](./CONTRIBUTING.md) to get started.
@@ -1,22 +1,25 @@
1
1
  mcp_agent/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
- mcp_agent/app.py,sha256=QbOBEo7vfVqf5U0F44UawIcYZjPT8KZj2uMOHC4W2lQ,10420
2
+ mcp_agent/app.py,sha256=LJ8-9_hTnDOjX0KxRYRu9OPqDcj-fAQSSfS4Oo2m0D8,10550
3
3
  mcp_agent/config.py,sha256=mShpoyIAGeyQKMH9gUCAXBZ2HNF3SM2KoMjSMpPQnmg,10210
4
4
  mcp_agent/console.py,sha256=Gjf2QLFumwG1Lav__c07X_kZxxEUSkzV-1_-YbAwcwo,813
5
5
  mcp_agent/context.py,sha256=qzwUrexZXVBzFiNkYI4xjztdGxuuiDWZbWrQgVhA-vE,8126
6
6
  mcp_agent/context_dependent.py,sha256=TGqRLzYCOnsWGoaD1HtrliYtWo8MeaWCQk6ePUmyYCw,1446
7
- mcp_agent/event_progress.py,sha256=GL3peoEnDx_mdOCeCCVRqZOCSqUDVi_JRfrl_24oD-4,2488
7
+ mcp_agent/event_progress.py,sha256=uolrsdEuXQ8_8iAspb_w3HHp_yY22QfVyysuQaAhnOg,2641
8
8
  mcp_agent/mcp_server_registry.py,sha256=5x30L1IlmC18JASl7NQbZYHMqPWS3ay0f_3U3uleaMM,9884
9
9
  mcp_agent/progress_display.py,sha256=GeJU9VUt6qKsFVymG688hCMVCsAygG9ifiiEb5IcbN4,361
10
10
  mcp_agent/agents/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
11
- mcp_agent/agents/agent.py,sha256=0NRcOk4u8e9dbAo9NKHIZzl5Brm_NtW08bW3sNuPn5A,9686
11
+ mcp_agent/agents/agent.py,sha256=utMR_QWKD1_MqWE_fYY-xqUMKtGlekW0laJfduU6Ckw,9831
12
12
  mcp_agent/cli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
13
13
  mcp_agent/cli/__main__.py,sha256=bhxe66GYqy0q78OQhi7dkuubY1Tn0bQL6hU5Nn47E34,73
14
14
  mcp_agent/cli/main.py,sha256=wyOvUg0BihD1NpoiFcIaOruevgaHxs1-Xy_bnwb1Ik4,2449
15
15
  mcp_agent/cli/terminal.py,sha256=5fqrKlJvIpKEuvpvZ653OueQSYFFktBEbosjr2ucMUc,1026
16
- mcp_agent/cli/commands/bootstrap.py,sha256=fCso2NxcokA_wGg3RHoUKVKiGxxlSv2X74nsvN1oskA,7503
16
+ mcp_agent/cli/commands/bootstrap.py,sha256=5OAxs1IsWarFNX1IoTRbVyjMqktxJ3pweM3LwGOVAhk,10768
17
17
  mcp_agent/cli/commands/config.py,sha256=32YTS5jmsYAs9QzAhjkG70_daAHqOemf4XbZBBSMz6g,204
18
- mcp_agent/cli/commands/setup.py,sha256=nmiAgYvgGbOkFPbZNeMl-pgLo50NeP4HKb60YhmJbqg,6024
19
- mcp_agent/core/fastagent.py,sha256=BG4BqXZkiMQa_VwljU4ciQbmYtn3TwbMQX4jkF-uaO0,36504
18
+ mcp_agent/cli/commands/setup.py,sha256=Km4-EFJljjMU5XjsSa-srg_7lbPuH5e40sx4lQDkia4,6198
19
+ mcp_agent/core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
20
+ mcp_agent/core/exceptions.py,sha256=xDdhYh83ni3t0NiXQTEL0_Yyx0qQxBPQL1gSwRToeaw,1469
21
+ mcp_agent/core/fastagent.py,sha256=THy6lDg3CjgF_nMKq8GtWkFT03r6-8VKFFhjjECx6aE,42699
22
+ mcp_agent/core/server_validation.py,sha256=_59cn16nNT4HGPwg19HgxMtHK4MsdWYDUw_CuL-5xek,1696
20
23
  mcp_agent/eval/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
21
24
  mcp_agent/executor/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
22
25
  mcp_agent/executor/decorator_registry.py,sha256=eONv5WvIcjKd43jVqeP7iB2EkAK-ErhdmXt6ogN0K_w,3848
@@ -33,7 +36,7 @@ mcp_agent/logging/events.py,sha256=qfYJnrqgXdujV-nl-iOwBEBh6HMraowBI4zeAWPPU4A,3
33
36
  mcp_agent/logging/json_serializer.py,sha256=pa_mf0i0YKpLsGq3THuITFUdAbmae-dv1OPOLbcS0to,5782
34
37
  mcp_agent/logging/listeners.py,sha256=lx2Pq_SE0rsG3nF3TwDSxkmsWzdXxIUjuaWct-KOtJ8,6631
35
38
  mcp_agent/logging/logger.py,sha256=Tr009BnfGUKuZcdinnSin0Z_zIsfDNGdcnamw2rDHRQ,10604
36
- mcp_agent/logging/rich_progress.py,sha256=-GTOKZsa3KPsebfjCCkoGRyILGxDkDFPSfJyUk-8ia0,4142
39
+ mcp_agent/logging/rich_progress.py,sha256=ExVCEPfk01BaspOy60o5rnsfnr1aT6UKO0OWGDXYT5s,4560
37
40
  mcp_agent/logging/tracing.py,sha256=jQivxKYl870oXakmyUk7TXuTQSvsIzpHwZlSQfy4b0c,5203
38
41
  mcp_agent/logging/transport.py,sha256=Oo7Rx5t7REZTnH-uVljK0JlehnBj-wInc_fx0zhd_zY,16139
39
42
  mcp_agent/mcp/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -42,16 +45,20 @@ mcp_agent/mcp/mcp_activity.py,sha256=CajXCFWZ2cKEX9s4-HfNVAj471ePTVs4NOkvmIh65tE
42
45
  mcp_agent/mcp/mcp_agent_client_session.py,sha256=NtWcQhjmnnaR3yYcYj2d2lh-m563NexZUa57K1tAjeM,9477
43
46
  mcp_agent/mcp/mcp_agent_server.py,sha256=xP09HZTeguJi4Fq0p3fjLBP55uSYe5AdqM90xCgn9Ho,1639
44
47
  mcp_agent/mcp/mcp_aggregator.py,sha256=SQNErk20jTT_5cHTQ9zQBYEsAedd6QEweQj-YSzkdOo,14602
45
- mcp_agent/mcp/mcp_connection_manager.py,sha256=PfDH7fHMk-D3m-DxHsWU0PdcuXJ9rInxMA0-yC6Hv2U,11392
48
+ mcp_agent/mcp/mcp_connection_manager.py,sha256=tdz2B2BxmO2gBDPe4r6eEnUp4QpwD0p0-ag5J_hle-w,11750
46
49
  mcp_agent/mcp/stdio.py,sha256=tW075R5rQ-UlflXWFKIFDgCbWbuhKqxhiYolWvyEkFs,3985
47
- mcp_agent/resources/examples/decorator/main.py,sha256=nHJ33S9icOQPHTzXYQ_bPQclAiVLNdzIHQ3uAiecVhU,712
48
- mcp_agent/resources/examples/decorator/optimizer.py,sha256=Mwz3Vgc01vqdAKeboZWHWyeWIi9rWx_xeNpKswb58fc,3378
49
- mcp_agent/resources/examples/decorator/orchestrator.py,sha256=yaga9f4CyZ6Ex_KHYUzp8gxramNBcWTJ2f6oVkp1hj0,2770
50
- mcp_agent/resources/examples/decorator/parallel.py,sha256=Jq1HI8j6_smVva6wRKKbgxzE7R48ZbQ9HtAkXisVg1E,3221
51
- mcp_agent/resources/examples/decorator/router.py,sha256=ZBHUbsoBXHHa1UD8sogF29Tl5NvMFv37H2i8W9ooZnw,1806
52
- mcp_agent/resources/examples/decorator/tiny.py,sha256=YCNdiNehOTU0B_-RSeI2LDqa00AZWod2_w39pWd0or0,490
53
- mcp_agent/resources/examples/mcp_researcher/main-evalopt.py,sha256=NI1vujVuLeTrcF8dM_ipZZ3Tg-1AL35CaltmuzxWrU4,1807
54
- mcp_agent/resources/examples/mcp_researcher/main.py,sha256=jPRafm7jbpHKkX_dQiYGG3Sw-e1Dm86q-JZT-WZDhM0,1425
50
+ mcp_agent/resources/examples/data-analysis/analysis.py,sha256=Sp-umPPfwVjG3yNrHdQA6blGtG6jc5of1e_0oS4njYc,1379
51
+ mcp_agent/resources/examples/data-analysis/fastagent.config.yaml,sha256=eTKGbjnTHhDTeNRPQvG_fr9OQpEZ5Y9v7X2NyCj0V70,530
52
+ mcp_agent/resources/examples/data-analysis/mount-point/WA_Fn-UseC_-HR-Employee-Attrition.csv,sha256=pcMeOL1_r8m8MziE6xgbBrQbjl5Ijo98yycZn7O-dlk,227977
53
+ mcp_agent/resources/examples/mcp_researcher/researcher-eval.py,sha256=NI1vujVuLeTrcF8dM_ipZZ3Tg-1AL35CaltmuzxWrU4,1807
54
+ mcp_agent/resources/examples/mcp_researcher/researcher.py,sha256=jPRafm7jbpHKkX_dQiYGG3Sw-e1Dm86q-JZT-WZDhM0,1425
55
+ mcp_agent/resources/examples/workflows/chaining.py,sha256=o9vf45BtJP6PT7kCYfIyNTcJrVGnMeKCUD37vI0cepw,770
56
+ mcp_agent/resources/examples/workflows/evaluator.py,sha256=ByILFY7PsA8UXtmNa4YtLIGSsnVfZVjKlHGH9G0ie2I,3069
57
+ mcp_agent/resources/examples/workflows/fastagent.config.yaml,sha256=s8USBUpEymJbOLVp-NiFuo86h4sCxL9TB5H-Ub8i0hQ,234
58
+ mcp_agent/resources/examples/workflows/human_input.py,sha256=c8cBdLEPbaMXddFwsfN3Z7RFs5PZXsdrjANfvq1VTPM,605
59
+ mcp_agent/resources/examples/workflows/orchestrator.py,sha256=LaV5rzBy6NvnlFd91f96bKFrle6voxDA1TFa8hVxQ9Y,2550
60
+ mcp_agent/resources/examples/workflows/parallel.py,sha256=cNYcIcsdo0-KK-S7KEPCc11aWELeVlQJdJ2LIC9xgDs,3090
61
+ mcp_agent/resources/examples/workflows/router.py,sha256=XT_ewCrxPxdUTMCYQGw34qZQ3GGu8TYY_v5Lige8By4,1707
55
62
  mcp_agent/telemetry/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
56
63
  mcp_agent/telemetry/usage_tracking.py,sha256=ePujKMSjPxB7k6X34DGaVlnsV1728mcWZq38OqahiCU,501
57
64
  mcp_agent/workflows/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -71,12 +78,12 @@ mcp_agent/workflows/intent_classifier/intent_classifier_llm_anthropic.py,sha256=
71
78
  mcp_agent/workflows/intent_classifier/intent_classifier_llm_openai.py,sha256=zj76WlTYnSCYjBQ_IDi5vFBQGmNwYaoUq1rT730sY98,1940
72
79
  mcp_agent/workflows/llm/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
73
80
  mcp_agent/workflows/llm/augmented_llm.py,sha256=o5Vdn1sAgVBhmetilbiYJuVz5BAtEhNcwGMEBGNzU_A,22960
74
- mcp_agent/workflows/llm/augmented_llm_anthropic.py,sha256=JrgwAdY569qsNrh5UeIJbUl8yctGN-BFv3XClwD4oXM,19365
75
- mcp_agent/workflows/llm/augmented_llm_openai.py,sha256=hxTw0LMhNnu09mF4M6Z7expwRJHNk9utq4VqqcLqJ9A,22980
81
+ mcp_agent/workflows/llm/augmented_llm_anthropic.py,sha256=rcaFn4ZhxJgBuTsRCKCcCx4U8UYqAhJNh3EK5M5hgew,21118
82
+ mcp_agent/workflows/llm/augmented_llm_openai.py,sha256=RqsbX0Fc5By1AvQ2N85hxzz0d84mVwuPggslxwqSJVM,24190
76
83
  mcp_agent/workflows/llm/llm_selector.py,sha256=G7pIybuBDwtmyxUDov_QrNYH2FoI0qFRu2JfoxWUF5Y,11045
77
84
  mcp_agent/workflows/llm/model_factory.py,sha256=cAjG8UxzUC_wcB6mPaMfEhwnGnVS4-IOmOXDabO1_0g,6119
78
85
  mcp_agent/workflows/orchestrator/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
79
- mcp_agent/workflows/orchestrator/orchestrator.py,sha256=tSRMCRFT_gAQApRRiXXznCbk_x11o86oi5LfKLnXzdk,15146
86
+ mcp_agent/workflows/orchestrator/orchestrator.py,sha256=BMGToWE-C2WiL74U5s0oT5wKoHWWxhWZ_lRfHm-8ryg,12494
80
87
  mcp_agent/workflows/orchestrator/orchestrator_models.py,sha256=UWn7_HFLcqFGlcjZ1Rn2SYQfm5k9seS6QJN_FRST5Kc,4513
81
88
  mcp_agent/workflows/orchestrator/orchestrator_prompts.py,sha256=AQ9-1WyMIl6l36yAMh1dtJ6Vhi1jPrvGXF2CNNAtlpA,3946
82
89
  mcp_agent/workflows/parallel/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -93,8 +100,8 @@ mcp_agent/workflows/swarm/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJW
93
100
  mcp_agent/workflows/swarm/swarm.py,sha256=-lAIeSWDqbGHGRPTvjiP9nIKWvxxy9DAojl9yQzO1Pw,11050
94
101
  mcp_agent/workflows/swarm/swarm_anthropic.py,sha256=pW8zFx5baUWGd5Vw3nIDF2oVOOGNorij4qvGJKdYPcs,1624
95
102
  mcp_agent/workflows/swarm/swarm_openai.py,sha256=wfteywvAGkT5bLmIxX_StHJq8144whYmCRnJASAjOes,1596
96
- fast_agent_mcp-0.0.7.dist-info/METADATA,sha256=H8C_2qY8kSMD0x-zBrlO8legmofje3p5ra-yDfCukAI,17770
97
- fast_agent_mcp-0.0.7.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
98
- fast_agent_mcp-0.0.7.dist-info/entry_points.txt,sha256=2IXtSmDK9XjWN__RWuRIJTgWyW17wJnJ_h-pb0pZAxo,174
99
- fast_agent_mcp-0.0.7.dist-info/licenses/LICENSE,sha256=cN3FxDURL9XuzE5mhK9L2paZo82LTfjwCYVT7e3j0e4,10939
100
- fast_agent_mcp-0.0.7.dist-info/RECORD,,
103
+ fast_agent_mcp-0.0.9.dist-info/METADATA,sha256=KBbUbJ7Sx0c9ZvVd9j2zJCdgr1BIDUwvfqN6nAzMjew,15966
104
+ fast_agent_mcp-0.0.9.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
105
+ fast_agent_mcp-0.0.9.dist-info/entry_points.txt,sha256=2IXtSmDK9XjWN__RWuRIJTgWyW17wJnJ_h-pb0pZAxo,174
106
+ fast_agent_mcp-0.0.9.dist-info/licenses/LICENSE,sha256=cN3FxDURL9XuzE5mhK9L2paZo82LTfjwCYVT7e3j0e4,10939
107
+ fast_agent_mcp-0.0.9.dist-info/RECORD,,
mcp_agent/agents/agent.py CHANGED
@@ -43,6 +43,7 @@ class AgentConfig:
43
43
  model: Optional[str] = None
44
44
  use_history: bool = True
45
45
  default_request_params: Optional[RequestParams] = None
46
+ human_input: bool = False
46
47
 
47
48
  def __post_init__(self):
48
49
  """Ensure default_request_params exists with proper history setting"""
@@ -103,10 +104,13 @@ class Agent(MCPAggregator):
103
104
  # Map function names to tools
104
105
  self._function_tool_map: Dict[str, FastTool] = {}
105
106
 
106
- self.human_input_callback: HumanInputCallback | None = human_input_callback
107
- if not human_input_callback:
108
- if self.context.human_input_handler:
109
- self.human_input_callback = self.context.human_input_handler
107
+ if not self.config.human_input:
108
+ self.human_input_callback = None
109
+ else:
110
+ self.human_input_callback: HumanInputCallback | None = human_input_callback
111
+ if not human_input_callback:
112
+ if self.context.human_input_handler:
113
+ self.human_input_callback = self.context.human_input_handler
110
114
 
111
115
  async def initialize(self):
112
116
  """
mcp_agent/app.py CHANGED
@@ -154,7 +154,11 @@ class MCPApp:
154
154
  "agent_name": "mcp_application_loop",
155
155
  },
156
156
  )
157
- await cleanup_context()
157
+ try:
158
+ await cleanup_context()
159
+ except asyncio.CancelledError:
160
+ self.logger.debug("Cleanup cancelled error during shutdown")
161
+
158
162
  self._context = None
159
163
  self._initialized = False
160
164