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
71 lines
3.0 KiB
Python
71 lines
3.0 KiB
Python
# import asyncio
|
|
|
|
# import pytest
|
|
|
|
# from mcp_use.client import MCPClient
|
|
|
|
|
|
# @pytest.mark.asyncio
|
|
# async def test_tool_list_update(primitive_server):
|
|
# """Tests that the tool list is automatically updated after a change notification."""
|
|
# config = {"mcpServers": {"PrimitiveServer": {"url": f"{primitive_server}/mcp"}}}
|
|
# client = MCPClient(config)
|
|
# try:
|
|
# await client.create_all_sessions()
|
|
# session = client.get_session("PrimitiveServer")
|
|
# # Initial state: Check that all tools are present
|
|
# tools = await session.list_tools()
|
|
# assert "tool_to_disable" in [tool.name for tool in tools]
|
|
|
|
# # Trigger the change (this will disable the tool and send a notification)
|
|
# await session.call_tool(name="change_tools", arguments={})
|
|
|
|
# # The tool list should be refreshed automatically on next call
|
|
# tools = await session.list_tools()
|
|
# assert "tool_to_disable" not in [tool.name for tool in tools]
|
|
# finally:
|
|
# await client.close_all_sessions()
|
|
|
|
|
|
# @pytest.mark.asyncio
|
|
# async def test_resource_list_update(primitive_server):
|
|
# """Tests that the resource list is automatically updated after a change notification."""
|
|
# config = {"mcpServers": {"PrimitiveServer": {"url": f"{primitive_server}/mcp"}}}
|
|
# client = MCPClient(config)
|
|
# try:
|
|
# await client.create_all_sessions()
|
|
# session = client.get_session("PrimitiveServer")
|
|
# # Initial state: Check that we have at least one resource
|
|
# resources = await session.list_resources()
|
|
# assert "resource_to_disable" in [resource.name for resource in resources]
|
|
|
|
# # Trigger the change (this will disable a resource and send a notification)
|
|
# await session.call_tool(name="change_resources", arguments={})
|
|
|
|
# # The resource list should be refreshed automatically on next call
|
|
# resources = await session.list_resources()
|
|
# assert "resource_to_disable" not in [resource.name for resource in resources]
|
|
# finally:
|
|
# await client.close_all_sessions()
|
|
|
|
|
|
# @pytest.mark.asyncio
|
|
# async def test_prompt_list_update(primitive_server):
|
|
# """Tests that the prompt list is automatically updated after a change notification."""
|
|
# config = {"mcpServers": {"PrimitiveServer": {"url": f"{primitive_server}/mcp"}}}
|
|
# client = MCPClient(config)
|
|
# try:
|
|
# await client.create_all_sessions()
|
|
# session = client.get_session("PrimitiveServer")
|
|
# # Initial state: Check that all prompts are present
|
|
# prompts = await session.list_prompts()
|
|
# assert "prompt_to_disable" in [prompt.name for prompt in prompts]
|
|
|
|
# # Trigger the change (this will disable the prompt and send a notification)
|
|
# await session.call_tool(name="change_prompts", arguments={})
|
|
# # The prompt list should be refreshed automatically on next call
|
|
# prompts = await session.list_prompts()
|
|
# assert "prompt_to_disable" not in [prompt.name for prompt in prompts]
|
|
# finally:
|
|
# await client.close_all_sessions()
|