fast-agent-mcp 0.0.7__py3-none-any.whl → 0.0.8__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 (31) hide show
  1. {fast_agent_mcp-0.0.7.dist-info → fast_agent_mcp-0.0.8.dist-info}/METADATA +22 -57
  2. {fast_agent_mcp-0.0.7.dist-info → fast_agent_mcp-0.0.8.dist-info}/RECORD +29 -23
  3. mcp_agent/agents/agent.py +8 -4
  4. mcp_agent/app.py +5 -1
  5. mcp_agent/cli/commands/bootstrap.py +180 -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 +176 -85
  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 +20 -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/human_input.py +26 -0
  20. mcp_agent/resources/examples/{decorator → workflows}/orchestrator.py +20 -11
  21. mcp_agent/resources/examples/{decorator → workflows}/parallel.py +14 -18
  22. mcp_agent/resources/examples/{decorator → workflows}/router.py +9 -10
  23. mcp_agent/workflows/llm/augmented_llm_anthropic.py +48 -12
  24. mcp_agent/workflows/llm/augmented_llm_openai.py +38 -9
  25. mcp_agent/resources/examples/decorator/main.py +0 -26
  26. mcp_agent/resources/examples/decorator/tiny.py +0 -22
  27. {fast_agent_mcp-0.0.7.dist-info → fast_agent_mcp-0.0.8.dist-info}/WHEEL +0 -0
  28. {fast_agent_mcp-0.0.7.dist-info → fast_agent_mcp-0.0.8.dist-info}/entry_points.txt +0 -0
  29. {fast_agent_mcp-0.0.7.dist-info → fast_agent_mcp-0.0.8.dist-info}/licenses/LICENSE +0 -0
  30. /mcp_agent/resources/examples/mcp_researcher/{main-evalopt.py → researcher-eval.py} +0 -0
  31. /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.8
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,37 @@ 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 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 demonstrating each of the workflows from Anthropic's "[Building Effective Agents](https://www.anthropic.com/research/building-effective-agents)" paper.
262
+
263
+ It's built on top of [mcp-agent](todo).
265
264
 
266
265
  ### llmindset.co.uk fork:
267
266
 
268
- - "FastAgent" style prototyping
269
- - Interactive Mode
267
+ - "FastAgent" style prototyping, with per-agent models
268
+ - Warm-up / Post-Workflow Agent Interactions
269
+ - Quick Setup
270
+ - Interactive Prompt Mode
270
271
  - Simple Model Selection with aliases
271
272
  - User/Assistant and Tool Call message display
272
273
  - MCP Sever Environment Variable support
@@ -274,49 +275,13 @@ We welcome all kinds of [contributions](/CONTRIBUTING.md), feedback and your hel
274
275
  - Comprehensive Progress display
275
276
  - JSONL file logging with secret revokation
276
277
  - OpenAI o1/o3-mini support with reasoning level
277
- - Enhaned Human Input Messaging and Handling
278
+ - Enhanced Human Input Messaging and Handling
279
+ - Declarative workflows
278
280
 
279
281
  ## Get Started
280
282
 
281
283
  We recommend using [uv](https://docs.astral.sh/uv/) to manage your Python projects:
282
284
 
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
285
  ## Table of Contents
306
286
 
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
287
  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=mVng2bZPKfVEULrOPI7sQQaENAJwU-3SsGZb10mbu6Q,10614
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=WuT0B9XpGM7XowJivNkRcIm-0BthlObVtoNwcBaNKCA,40641
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,19 @@ 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=LrfbuK68JqcB9Y21NMedJ8RiEVU5Kr6jOIRLGmwz524,1379
51
+ mcp_agent/resources/examples/data-analysis/fastagent.config.yaml,sha256=VwoXyaxAuLNUm7dtRj5rTxeFDSM_wRhhX_HZunb8jUI,422
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/human_input.py,sha256=RlUch5A8N9pb3REusiIAZKfAGTxWWE82s1Npmkfbg1Y,625
58
+ mcp_agent/resources/examples/workflows/orchestrator.py,sha256=pt6HTyJl5r5zR6FUICi05-Eaulyh_W-PAfh9XCbuuRc,2986
59
+ mcp_agent/resources/examples/workflows/parallel.py,sha256=cNYcIcsdo0-KK-S7KEPCc11aWELeVlQJdJ2LIC9xgDs,3090
60
+ mcp_agent/resources/examples/workflows/router.py,sha256=XT_ewCrxPxdUTMCYQGw34qZQ3GGu8TYY_v5Lige8By4,1707
55
61
  mcp_agent/telemetry/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
56
62
  mcp_agent/telemetry/usage_tracking.py,sha256=ePujKMSjPxB7k6X34DGaVlnsV1728mcWZq38OqahiCU,501
57
63
  mcp_agent/workflows/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -71,8 +77,8 @@ mcp_agent/workflows/intent_classifier/intent_classifier_llm_anthropic.py,sha256=
71
77
  mcp_agent/workflows/intent_classifier/intent_classifier_llm_openai.py,sha256=zj76WlTYnSCYjBQ_IDi5vFBQGmNwYaoUq1rT730sY98,1940
72
78
  mcp_agent/workflows/llm/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
73
79
  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
80
+ mcp_agent/workflows/llm/augmented_llm_anthropic.py,sha256=jowYvWBdVspxQhcvZt14iL_1kEZK2t4f6Wzgn_8zLaY,21048
81
+ mcp_agent/workflows/llm/augmented_llm_openai.py,sha256=RqsbX0Fc5By1AvQ2N85hxzz0d84mVwuPggslxwqSJVM,24190
76
82
  mcp_agent/workflows/llm/llm_selector.py,sha256=G7pIybuBDwtmyxUDov_QrNYH2FoI0qFRu2JfoxWUF5Y,11045
77
83
  mcp_agent/workflows/llm/model_factory.py,sha256=cAjG8UxzUC_wcB6mPaMfEhwnGnVS4-IOmOXDabO1_0g,6119
78
84
  mcp_agent/workflows/orchestrator/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -93,8 +99,8 @@ mcp_agent/workflows/swarm/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJW
93
99
  mcp_agent/workflows/swarm/swarm.py,sha256=-lAIeSWDqbGHGRPTvjiP9nIKWvxxy9DAojl9yQzO1Pw,11050
94
100
  mcp_agent/workflows/swarm/swarm_anthropic.py,sha256=pW8zFx5baUWGd5Vw3nIDF2oVOOGNorij4qvGJKdYPcs,1624
95
101
  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,,
102
+ fast_agent_mcp-0.0.8.dist-info/METADATA,sha256=tPypBpbGkwNNIRHnJJF7Nn68O1bJHIdV3WFvVup3xyI,15914
103
+ fast_agent_mcp-0.0.8.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
104
+ fast_agent_mcp-0.0.8.dist-info/entry_points.txt,sha256=2IXtSmDK9XjWN__RWuRIJTgWyW17wJnJ_h-pb0pZAxo,174
105
+ fast_agent_mcp-0.0.8.dist-info/licenses/LICENSE,sha256=cN3FxDURL9XuzE5mhK9L2paZo82LTfjwCYVT7e3j0e4,10939
106
+ fast_agent_mcp-0.0.8.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