mirror of
https://github.com/mcp-use/mcp-use.git
synced 2026-09-14 18:06:01 +08:00
be9942a4d4
* feat: server first implementation * docs: docs for server and images * chore: locked langchain dependencies in pyproject.toml (#321) * python/release/1.3.13 * catch uvicorn logs && log session id * fix debug logic * docs: logging update * fix: icon of elicitation * fix installation paths for local clones * docs: minor restructuring * docs: reorganization, killed non existing pages * docs: beta tag on server * chore: example servers * feat: inspector autopopulated and client only * feat: enhance MCP logging system with customizable formats and improved middleware * feat: implement weather alert and forecast tools in FastMCP example server * mcp path configurable * fix inspector * export as FastMCP too * chore: update fastmcp migration example * lock inspector version * type runner * unhide docs and remove dangers * migration diff * docs and context example * export context * logging improvement * pretty JSON RPC * autoConnect url param in inspecotr * move logging * type check * Server Router * show response logs * fallback tool name to function name in router registration * compatibility export * Introduced ty and prek as type checker and precommit engine respectively - moved ruff config in pyproject toml * add ty check * ty runs only on staged files * ty configuration fix * move startup info in logging * remove bug from action * update claude rules * fix resource serialization * comments on inspector errors * abstracted runner transports * remove redunant call for network * fix ip getter * add inspector mcp path * response limit logging * disable ty check in action * moved transport type to types * support sse * show transport type in logs * change default transport * refactored tests to use mcp server * removed fastmcp * file restructuring * test table * sampling, elicitation, tool disabling enabling * deprecte sse server side * simplified report * fix action * remove sse deprecated test * move tests files to allow for server integration tests * docs * reorg integration test files * api-reference-doxs * fix broken links * telemetry * remove feature useage from scarf
27 lines
984 B
Python
27 lines
984 B
Python
import pytest
|
|
from mcp.client.session import RequestContext
|
|
from mcp.types import ElicitRequestParams, ElicitResult
|
|
|
|
from mcp_use.client import MCPClient
|
|
|
|
|
|
async def elicitation_callback(ctx: RequestContext, params: ElicitRequestParams) -> ElicitResult:
|
|
"""Elicit the user to summarize text."""
|
|
return ElicitResult(
|
|
action="accept",
|
|
content={"quantity": 1, "unit": "kg"},
|
|
)
|
|
|
|
|
|
@pytest.mark.asyncio
|
|
async def test_elicitation(primitive_server):
|
|
config = {"mcpServers": {"PrimitiveServer": {"url": f"{primitive_server}/mcp"}}}
|
|
client = MCPClient(config, elicitation_callback=elicitation_callback) # type: ignore[invalid-argument-type]
|
|
try:
|
|
await client.create_all_sessions()
|
|
session = client.get_session("PrimitiveServer")
|
|
result = await session.call_tool(name="purchase_item", arguments={})
|
|
assert result.content[0].text == "You are buying 1 kg of the item"
|
|
finally:
|
|
await client.close_all_sessions()
|