openboost-cli 2.0.0__tar.gz → 2.0.1__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.
- {openboost_cli-2.0.0/src/openboost_cli.egg-info → openboost_cli-2.0.1}/PKG-INFO +2 -2
- {openboost_cli-2.0.0 → openboost_cli-2.0.1}/README.md +1 -1
- {openboost_cli-2.0.0 → openboost_cli-2.0.1}/pyproject.toml +1 -1
- {openboost_cli-2.0.0 → openboost_cli-2.0.1}/src/openboost_cli/__init__.py +6 -6
- {openboost_cli-2.0.0 → openboost_cli-2.0.1}/src/openboost_cli/cli/main.py +1 -1
- {openboost_cli-2.0.0 → openboost_cli-2.0.1}/src/openboost_cli/mcp_client.py +19 -18
- {openboost_cli-2.0.0 → openboost_cli-2.0.1/src/openboost_cli.egg-info}/PKG-INFO +2 -2
- {openboost_cli-2.0.0 → openboost_cli-2.0.1}/tests/test_cli.py +1 -1
- {openboost_cli-2.0.0 → openboost_cli-2.0.1}/tests/test_config.py +10 -4
- {openboost_cli-2.0.0 → openboost_cli-2.0.1}/tests/test_mcp_client.py +33 -25
- {openboost_cli-2.0.0 → openboost_cli-2.0.1}/LICENSE +0 -0
- {openboost_cli-2.0.0 → openboost_cli-2.0.1}/setup.cfg +0 -0
- {openboost_cli-2.0.0 → openboost_cli-2.0.1}/src/openboost_cli/cli/__init__.py +0 -0
- {openboost_cli-2.0.0 → openboost_cli-2.0.1}/src/openboost_cli/cli/interactive.py +0 -0
- {openboost_cli-2.0.0 → openboost_cli-2.0.1}/src/openboost_cli/client.py +0 -0
- {openboost_cli-2.0.0 → openboost_cli-2.0.1}/src/openboost_cli/coerce_args.py +0 -0
- {openboost_cli-2.0.0 → openboost_cli-2.0.1}/src/openboost_cli/config.py +0 -0
- {openboost_cli-2.0.0 → openboost_cli-2.0.1}/src/openboost_cli/parse_result.py +0 -0
- {openboost_cli-2.0.0 → openboost_cli-2.0.1}/src/openboost_cli/registry.py +0 -0
- {openboost_cli-2.0.0 → openboost_cli-2.0.1}/src/openboost_cli/schemas/__init__.py +0 -0
- {openboost_cli-2.0.0 → openboost_cli-2.0.1}/src/openboost_cli/schemas/amazon/__init__.py +0 -0
- {openboost_cli-2.0.0 → openboost_cli-2.0.1}/src/openboost_cli/schemas/amazon/amz_category_query.json +0 -0
- {openboost_cli-2.0.0 → openboost_cli-2.0.1}/src/openboost_cli/schemas/amazon/amz_hot_amz_hot_cat_tree.json +0 -0
- {openboost_cli-2.0.0 → openboost_cli-2.0.1}/src/openboost_cli/schemas/amazon/amz_hot_amz_hot_list.json +0 -0
- {openboost_cli-2.0.0 → openboost_cli-2.0.1}/src/openboost_cli/schemas/amazon/amz_market_price.json +0 -0
- {openboost_cli-2.0.0 → openboost_cli-2.0.1}/src/openboost_cli/schemas/amazon/amz_product_selection.json +0 -0
- {openboost_cli-2.0.0 → openboost_cli-2.0.1}/src/openboost_cli/schemas/amazon/amz_review_query.json +0 -0
- {openboost_cli-2.0.0 → openboost_cli-2.0.1}/src/openboost_cli/schemas/amazon/amz_sales_query.json +0 -0
- {openboost_cli-2.0.0 → openboost_cli-2.0.1}/src/openboost_cli/schemas/amazon/amz_sku_query.json +0 -0
- {openboost_cli-2.0.0 → openboost_cli-2.0.1}/src/openboost_cli/schemas/patent/__init__.py +0 -0
- {openboost_cli-2.0.0 → openboost_cli-2.0.1}/src/openboost_cli/schemas/patent/patent_abstract_image.json +0 -0
- {openboost_cli-2.0.0 → openboost_cli-2.0.1}/src/openboost_cli/schemas/patent/patent_abstract_translated.json +0 -0
- {openboost_cli-2.0.0 → openboost_cli-2.0.1}/src/openboost_cli/schemas/patent/patent_bibliography.json +0 -0
- {openboost_cli-2.0.0 → openboost_cli-2.0.1}/src/openboost_cli/schemas/patent/patent_claim_data.json +0 -0
- {openboost_cli-2.0.0 → openboost_cli-2.0.1}/src/openboost_cli/schemas/patent/patent_claim_translated.json +0 -0
- {openboost_cli-2.0.0 → openboost_cli-2.0.1}/src/openboost_cli/schemas/patent/patent_description.json +0 -0
- {openboost_cli-2.0.0 → openboost_cli-2.0.1}/src/openboost_cli/schemas/patent/patent_description_translated.json +0 -0
- {openboost_cli-2.0.0 → openboost_cli-2.0.1}/src/openboost_cli/schemas/patent/patent_family.json +0 -0
- {openboost_cli-2.0.0 → openboost_cli-2.0.1}/src/openboost_cli/schemas/patent/patent_fulltext_image.json +0 -0
- {openboost_cli-2.0.0 → openboost_cli-2.0.1}/src/openboost_cli/schemas/patent/patent_image_search_multiple.json +0 -0
- {openboost_cli-2.0.0 → openboost_cli-2.0.1}/src/openboost_cli/schemas/patent/patent_image_search_single.json +0 -0
- {openboost_cli-2.0.0 → openboost_cli-2.0.1}/src/openboost_cli/schemas/patent/patent_legal_status.json +0 -0
- {openboost_cli-2.0.0 → openboost_cli-2.0.1}/src/openboost_cli/schemas/patent/patent_pdf.json +0 -0
- {openboost_cli-2.0.0 → openboost_cli-2.0.1}/src/openboost_cli/schemas/patent/patent_query_count.json +0 -0
- {openboost_cli-2.0.0 → openboost_cli-2.0.1}/src/openboost_cli/schemas/patent/patent_query_search.json +0 -0
- {openboost_cli-2.0.0 → openboost_cli-2.0.1}/src/openboost_cli/schemas/patent/patent_query_search_with_agg.json +0 -0
- {openboost_cli-2.0.0 → openboost_cli-2.0.1}/src/openboost_cli/schemas/patent/patent_semantic_search.json +0 -0
- {openboost_cli-2.0.0 → openboost_cli-2.0.1}/src/openboost_cli/schemas/tiktok/__init__.py +0 -0
- {openboost_cli-2.0.0 → openboost_cli-2.0.1}/src/openboost_cli/schemas/tiktok/tk_expert_sale_show.json +0 -0
- {openboost_cli-2.0.0 → openboost_cli-2.0.1}/src/openboost_cli/schemas/tiktok/tt_commodity_detail.json +0 -0
- {openboost_cli-2.0.0 → openboost_cli-2.0.1}/src/openboost_cli/schemas/tiktok/tt_commodity_expert_draw_expert_trend.json +0 -0
- {openboost_cli-2.0.0 → openboost_cli-2.0.1}/src/openboost_cli/schemas/tiktok/tt_commodity_get_commodity_cat_tree.json +0 -0
- {openboost_cli-2.0.0 → openboost_cli-2.0.1}/src/openboost_cli/schemas/tiktok/tt_commodity_info_list.json +0 -0
- {openboost_cli-2.0.0 → openboost_cli-2.0.1}/src/openboost_cli/schemas/tiktok/tt_commodity_sales_trend.json +0 -0
- {openboost_cli-2.0.0 → openboost_cli-2.0.1}/src/openboost_cli/schemas/tiktok/tt_commodity_statistics_get_category_statistics.json +0 -0
- {openboost_cli-2.0.0 → openboost_cli-2.0.1}/src/openboost_cli/schemas/tiktok/tt_commodity_statistics_get_expert_statistics.json +0 -0
- {openboost_cli-2.0.0 → openboost_cli-2.0.1}/src/openboost_cli/schemas/tiktok/tt_commodity_statistics_get_price_statistics.json +0 -0
- {openboost_cli-2.0.0 → openboost_cli-2.0.1}/src/openboost_cli/schemas/tiktok/tt_commodity_statistics_get_total_statistics.json +0 -0
- {openboost_cli-2.0.0 → openboost_cli-2.0.1}/src/openboost_cli/schemas/tiktok/tt_commodity_voice_analyze.json +0 -0
- {openboost_cli-2.0.0 → openboost_cli-2.0.1}/src/openboost_cli/schemas/tiktok/tt_expert_basic_analyze.json +0 -0
- {openboost_cli-2.0.0 → openboost_cli-2.0.1}/src/openboost_cli/schemas/tiktok/tt_expert_category_analyze.json +0 -0
- {openboost_cli-2.0.0 → openboost_cli-2.0.1}/src/openboost_cli/schemas/tiktok/tt_expert_detail.json +0 -0
- {openboost_cli-2.0.0 → openboost_cli-2.0.1}/src/openboost_cli/schemas/tiktok/tt_expert_fans_analyze.json +0 -0
- {openboost_cli-2.0.0 → openboost_cli-2.0.1}/src/openboost_cli/schemas/tiktok/tt_expert_fans_portrait.json +0 -0
- {openboost_cli-2.0.0 → openboost_cli-2.0.1}/src/openboost_cli/schemas/tiktok/tt_expert_info_list.json +0 -0
- {openboost_cli-2.0.0 → openboost_cli-2.0.1}/src/openboost_cli/schemas/tiktok/tt_sale_channel_sale_channel.json +0 -0
- {openboost_cli-2.0.0 → openboost_cli-2.0.1}/src/openboost_cli/schemas/tiktok/tt_shop_commodity_account_list.json +0 -0
- {openboost_cli-2.0.0 → openboost_cli-2.0.1}/src/openboost_cli/schemas/tiktok/tt_shop_detail.json +0 -0
- {openboost_cli-2.0.0 → openboost_cli-2.0.1}/src/openboost_cli/schemas/tiktok/tt_shop_info_list.json +0 -0
- {openboost_cli-2.0.0 → openboost_cli-2.0.1}/src/openboost_cli/schemas/tiktok/tt_shop_market_info.json +0 -0
- {openboost_cli-2.0.0 → openboost_cli-2.0.1}/src/openboost_cli/schemas/tiktok/tt_shop_sales_trend.json +0 -0
- {openboost_cli-2.0.0 → openboost_cli-2.0.1}/src/openboost_cli/schemas/tiktok/tt_video_content.json +0 -0
- {openboost_cli-2.0.0 → openboost_cli-2.0.1}/src/openboost_cli/schemas/tiktok/tt_video_detail.json +0 -0
- {openboost_cli-2.0.0 → openboost_cli-2.0.1}/src/openboost_cli/schemas/tiktok/tt_video_info_list.json +0 -0
- {openboost_cli-2.0.0 → openboost_cli-2.0.1}/src/openboost_cli/schemas/tiktok/tt_video_new_video_summary.json +0 -0
- {openboost_cli-2.0.0 → openboost_cli-2.0.1}/src/openboost_cli/schemas/tiktok/tt_video_script_diy_query.json +0 -0
- {openboost_cli-2.0.0 → openboost_cli-2.0.1}/src/openboost_cli/schemas/tiktok/tt_video_voice_read.json +0 -0
- {openboost_cli-2.0.0 → openboost_cli-2.0.1}/src/openboost_cli/schemas/tiktok/tt_video_voice_summary.json +0 -0
- {openboost_cli-2.0.0 → openboost_cli-2.0.1}/src/openboost_cli/schemas_loader.py +0 -0
- {openboost_cli-2.0.0 → openboost_cli-2.0.1}/src/openboost_cli.egg-info/SOURCES.txt +0 -0
- {openboost_cli-2.0.0 → openboost_cli-2.0.1}/src/openboost_cli.egg-info/dependency_links.txt +0 -0
- {openboost_cli-2.0.0 → openboost_cli-2.0.1}/src/openboost_cli.egg-info/entry_points.txt +0 -0
- {openboost_cli-2.0.0 → openboost_cli-2.0.1}/src/openboost_cli.egg-info/requires.txt +0 -0
- {openboost_cli-2.0.0 → openboost_cli-2.0.1}/src/openboost_cli.egg-info/top_level.txt +0 -0
- {openboost_cli-2.0.0 → openboost_cli-2.0.1}/tests/test_schemas_and_parsing.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: openboost-cli
|
|
3
|
-
Version: 2.0.
|
|
3
|
+
Version: 2.0.1
|
|
4
4
|
Summary: Unified CLI and Python client for OpenBoost TikTok, Patent, and Amazon MCP servers.
|
|
5
5
|
Author: OpenBoost CLI
|
|
6
6
|
License-Expression: MIT
|
|
@@ -56,7 +56,7 @@ openboost config set --secret-key "your-secret-key"
|
|
|
56
56
|
|
|
57
57
|
```bash
|
|
58
58
|
openboost config set --mcp amazon --secret-key "your-secret-key"
|
|
59
|
-
openboost config set --mcp amazon --base-url "http://mcp.microdata-inc.com/mcp-servers/
|
|
59
|
+
openboost config set --mcp amazon --base-url "http://mcp.microdata-inc.com/mcp-servers/openboost-all-mcp/sse"
|
|
60
60
|
```
|
|
61
61
|
|
|
62
62
|
默认配置文件位于:
|
|
@@ -34,7 +34,7 @@ openboost config set --secret-key "your-secret-key"
|
|
|
34
34
|
|
|
35
35
|
```bash
|
|
36
36
|
openboost config set --mcp amazon --secret-key "your-secret-key"
|
|
37
|
-
openboost config set --mcp amazon --base-url "http://mcp.microdata-inc.com/mcp-servers/
|
|
37
|
+
openboost config set --mcp amazon --base-url "http://mcp.microdata-inc.com/mcp-servers/openboost-all-mcp/sse"
|
|
38
38
|
```
|
|
39
39
|
|
|
40
40
|
默认配置文件位于:
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "openboost-cli"
|
|
7
|
-
version = "2.0.
|
|
7
|
+
version = "2.0.1"
|
|
8
8
|
description = "Unified CLI and Python client for OpenBoost TikTok, Patent, and Amazon MCP servers."
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.10"
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
"""Unified OpenBoost MCP CLI and Python client."""
|
|
2
2
|
|
|
3
|
-
__version__ = "2.0.
|
|
3
|
+
__version__ = "2.0.1"
|
|
4
4
|
|
|
5
|
-
DEFAULT_BASE_URLS = {
|
|
6
|
-
"tiktok": "http://mcp.microdata-inc.com/mcp-servers/
|
|
7
|
-
"patent": "http://mcp.microdata-inc.com/mcp-servers/
|
|
8
|
-
"amazon": "http://mcp.microdata-inc.com/mcp-servers/
|
|
9
|
-
}
|
|
5
|
+
DEFAULT_BASE_URLS = {
|
|
6
|
+
"tiktok": "http://mcp.microdata-inc.com/mcp-servers/openboost-all-mcp/sse",
|
|
7
|
+
"patent": "http://mcp.microdata-inc.com/mcp-servers/openboost-all-mcp/sse",
|
|
8
|
+
"amazon": "http://mcp.microdata-inc.com/mcp-servers/openboost-all-mcp/sse",
|
|
9
|
+
}
|
|
10
10
|
|
|
11
11
|
MCP_LABELS = {
|
|
12
12
|
"tiktok": "TikTok",
|
|
@@ -71,7 +71,7 @@ amazon_app.add_typer(amazon_hot_app, name="hot")
|
|
|
71
71
|
_state: dict[str, str | None] = {"secret_key": None, "base_url": None}
|
|
72
72
|
|
|
73
73
|
KeyOpt = Annotated[Optional[str], typer.Option("--key", "-k", help="secret-key")]
|
|
74
|
-
BaseUrlOpt = Annotated[Optional[str], typer.Option("--base-url", "-u", help="MCP
|
|
74
|
+
BaseUrlOpt = Annotated[Optional[str], typer.Option("--base-url", "-u", help="MCP SSE URL")]
|
|
75
75
|
McpArg = Annotated[str, typer.Argument(help="MCP 名称: tiktok / patent / amazon")]
|
|
76
76
|
CountryOpt = Annotated[str, typer.Option("--country-region", "--country", help="国家/地区,如 美国")]
|
|
77
77
|
CurrentOpt = Annotated[Optional[int], typer.Option("--current", help="当前页码")]
|
|
@@ -4,11 +4,9 @@ import asyncio
|
|
|
4
4
|
from datetime import timedelta
|
|
5
5
|
from typing import Any
|
|
6
6
|
|
|
7
|
-
import
|
|
8
|
-
from mcp import
|
|
9
|
-
from mcp import
|
|
10
|
-
from mcp.client.streamable_http import streamable_http_client
|
|
11
|
-
from mcp.shared._httpx_utils import create_mcp_http_client
|
|
7
|
+
from mcp import ClientSession
|
|
8
|
+
from mcp import types as mtypes
|
|
9
|
+
from mcp.client.sse import sse_client
|
|
12
10
|
|
|
13
11
|
from openboost_cli.config import effective_secret_and_base, normalize_mcp_name
|
|
14
12
|
from openboost_cli.parse_result import decode_embedded_payload
|
|
@@ -31,19 +29,22 @@ async def invoke_tool_async(
|
|
|
31
29
|
*,
|
|
32
30
|
connect_timeout_sec: float = 30,
|
|
33
31
|
read_timeout_sec: float = 300,
|
|
34
|
-
) -> mtypes.CallToolResult:
|
|
35
|
-
headers = {"secret-key": secret_key}
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
32
|
+
) -> mtypes.CallToolResult:
|
|
33
|
+
headers = {"secret-key": secret_key}
|
|
34
|
+
|
|
35
|
+
async with sse_client(
|
|
36
|
+
base_url,
|
|
37
|
+
headers=headers,
|
|
38
|
+
timeout=connect_timeout_sec,
|
|
39
|
+
sse_read_timeout=read_timeout_sec,
|
|
40
|
+
) as (read, write):
|
|
41
|
+
async with ClientSession(read, write) as session:
|
|
42
|
+
await session.initialize()
|
|
43
|
+
return await session.call_tool(
|
|
44
|
+
tool_name,
|
|
45
|
+
arguments,
|
|
46
|
+
read_timeout_seconds=timedelta(seconds=read_timeout_sec),
|
|
47
|
+
)
|
|
47
48
|
|
|
48
49
|
|
|
49
50
|
class McpClient:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: openboost-cli
|
|
3
|
-
Version: 2.0.
|
|
3
|
+
Version: 2.0.1
|
|
4
4
|
Summary: Unified CLI and Python client for OpenBoost TikTok, Patent, and Amazon MCP servers.
|
|
5
5
|
Author: OpenBoost CLI
|
|
6
6
|
License-Expression: MIT
|
|
@@ -56,7 +56,7 @@ openboost config set --secret-key "your-secret-key"
|
|
|
56
56
|
|
|
57
57
|
```bash
|
|
58
58
|
openboost config set --mcp amazon --secret-key "your-secret-key"
|
|
59
|
-
openboost config set --mcp amazon --base-url "http://mcp.microdata-inc.com/mcp-servers/
|
|
59
|
+
openboost config set --mcp amazon --base-url "http://mcp.microdata-inc.com/mcp-servers/openboost-all-mcp/sse"
|
|
60
60
|
```
|
|
61
61
|
|
|
62
62
|
默认配置文件位于:
|
|
@@ -4,10 +4,16 @@ import json
|
|
|
4
4
|
from pathlib import Path
|
|
5
5
|
|
|
6
6
|
from openboost_cli import DEFAULT_BASE_URLS
|
|
7
|
-
from openboost_cli.config import config_path, effective_secret_and_base, load_config, mask_secret, update_config
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
def
|
|
7
|
+
from openboost_cli.config import config_path, effective_secret_and_base, load_config, mask_secret, update_config
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
def test_default_mcp_urls_use_unified_openboost_sse_endpoint() -> None:
|
|
11
|
+
expected = "http://mcp.microdata-inc.com/mcp-servers/openboost-all-mcp/sse"
|
|
12
|
+
|
|
13
|
+
assert set(DEFAULT_BASE_URLS.values()) == {expected}
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
def test_config_uses_only_openboost_names(monkeypatch, tmp_path: Path) -> None:
|
|
11
17
|
path = tmp_path / "openboost.json"
|
|
12
18
|
monkeypatch.setenv("OPENBOOST_CONFIG", str(path))
|
|
13
19
|
monkeypatch.setenv("PROBOOST_SECRET_KEY", "ignored-old-secret")
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
2
|
|
|
3
3
|
import asyncio
|
|
4
|
-
from
|
|
5
|
-
from datetime import timedelta
|
|
4
|
+
from datetime import timedelta
|
|
6
5
|
from types import SimpleNamespace
|
|
7
6
|
|
|
8
7
|
import pytest
|
|
@@ -62,21 +61,30 @@ def test_python_client_raises_mcp_error(monkeypatch: pytest.MonkeyPatch) -> None
|
|
|
62
61
|
client.call_tool("patent_query_count", {"query_text": "test"})
|
|
63
62
|
|
|
64
63
|
|
|
65
|
-
def
|
|
66
|
-
observed = {}
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
64
|
+
def test_invoke_tool_uses_sse_protocol(monkeypatch: pytest.MonkeyPatch) -> None:
|
|
65
|
+
observed = {}
|
|
66
|
+
|
|
67
|
+
class FakeSseClient:
|
|
68
|
+
def __init__(self, base_url, *, headers, timeout, sse_read_timeout):
|
|
69
|
+
observed["base_url"] = base_url
|
|
70
|
+
observed["headers"] = headers
|
|
71
|
+
observed["timeout"] = timeout
|
|
72
|
+
observed["sse_read_timeout"] = sse_read_timeout
|
|
73
|
+
|
|
74
|
+
async def __aenter__(self):
|
|
75
|
+
return "read", "write"
|
|
76
|
+
|
|
77
|
+
async def __aexit__(self, exc_type, exc, tb):
|
|
78
|
+
return False
|
|
79
|
+
|
|
80
|
+
def fake_sse_client(base_url, *, headers, timeout, sse_read_timeout):
|
|
81
|
+
observed["base_url"] = base_url
|
|
82
|
+
return FakeSseClient(
|
|
83
|
+
base_url,
|
|
84
|
+
headers=headers,
|
|
85
|
+
timeout=timeout,
|
|
86
|
+
sse_read_timeout=sse_read_timeout,
|
|
87
|
+
)
|
|
80
88
|
|
|
81
89
|
class FakeSession:
|
|
82
90
|
def __init__(self, read, write):
|
|
@@ -95,9 +103,8 @@ def test_invoke_tool_uses_existing_mcp_protocol(monkeypatch: pytest.MonkeyPatch)
|
|
|
95
103
|
observed["call"] = (name, arguments, read_timeout_seconds)
|
|
96
104
|
return text_result('{"ok": true}')
|
|
97
105
|
|
|
98
|
-
monkeypatch.setattr(mcp_client, "
|
|
99
|
-
monkeypatch.setattr(mcp_client, "
|
|
100
|
-
monkeypatch.setattr(mcp_client, "ClientSession", FakeSession)
|
|
106
|
+
monkeypatch.setattr(mcp_client, "sse_client", fake_sse_client)
|
|
107
|
+
monkeypatch.setattr(mcp_client, "ClientSession", FakeSession)
|
|
101
108
|
|
|
102
109
|
result = asyncio.run(
|
|
103
110
|
mcp_client.invoke_tool_async(
|
|
@@ -110,11 +117,12 @@ def test_invoke_tool_uses_existing_mcp_protocol(monkeypatch: pytest.MonkeyPatch)
|
|
|
110
117
|
)
|
|
111
118
|
)
|
|
112
119
|
|
|
113
|
-
assert result.isError is False
|
|
114
|
-
assert observed["headers"] == {"secret-key": "test-secret"}
|
|
115
|
-
assert observed["base_url"] == "http://mcp.example/server"
|
|
116
|
-
assert observed["
|
|
117
|
-
assert observed["
|
|
120
|
+
assert result.isError is False
|
|
121
|
+
assert observed["headers"] == {"secret-key": "test-secret"}
|
|
122
|
+
assert observed["base_url"] == "http://mcp.example/server"
|
|
123
|
+
assert observed["timeout"] == 12
|
|
124
|
+
assert observed["sse_read_timeout"] == 34
|
|
125
|
+
assert observed["initialized"] is True
|
|
118
126
|
assert observed["call"] == (
|
|
119
127
|
"existing_tool_name",
|
|
120
128
|
{"existingField": "value"},
|
|
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
|
{openboost_cli-2.0.0 → openboost_cli-2.0.1}/src/openboost_cli/schemas/amazon/amz_category_query.json
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openboost_cli-2.0.0 → openboost_cli-2.0.1}/src/openboost_cli/schemas/amazon/amz_market_price.json
RENAMED
|
File without changes
|
|
File without changes
|
{openboost_cli-2.0.0 → openboost_cli-2.0.1}/src/openboost_cli/schemas/amazon/amz_review_query.json
RENAMED
|
File without changes
|
{openboost_cli-2.0.0 → openboost_cli-2.0.1}/src/openboost_cli/schemas/amazon/amz_sales_query.json
RENAMED
|
File without changes
|
{openboost_cli-2.0.0 → openboost_cli-2.0.1}/src/openboost_cli/schemas/amazon/amz_sku_query.json
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openboost_cli-2.0.0 → openboost_cli-2.0.1}/src/openboost_cli/schemas/patent/patent_claim_data.json
RENAMED
|
File without changes
|
|
File without changes
|
{openboost_cli-2.0.0 → openboost_cli-2.0.1}/src/openboost_cli/schemas/patent/patent_description.json
RENAMED
|
File without changes
|
|
File without changes
|
{openboost_cli-2.0.0 → openboost_cli-2.0.1}/src/openboost_cli/schemas/patent/patent_family.json
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openboost_cli-2.0.0 → openboost_cli-2.0.1}/src/openboost_cli/schemas/patent/patent_pdf.json
RENAMED
|
File without changes
|
{openboost_cli-2.0.0 → openboost_cli-2.0.1}/src/openboost_cli/schemas/patent/patent_query_count.json
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
|
{openboost_cli-2.0.0 → openboost_cli-2.0.1}/src/openboost_cli/schemas/tiktok/tt_expert_detail.json
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openboost_cli-2.0.0 → openboost_cli-2.0.1}/src/openboost_cli/schemas/tiktok/tt_shop_detail.json
RENAMED
|
File without changes
|
{openboost_cli-2.0.0 → openboost_cli-2.0.1}/src/openboost_cli/schemas/tiktok/tt_shop_info_list.json
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openboost_cli-2.0.0 → openboost_cli-2.0.1}/src/openboost_cli/schemas/tiktok/tt_video_content.json
RENAMED
|
File without changes
|
{openboost_cli-2.0.0 → openboost_cli-2.0.1}/src/openboost_cli/schemas/tiktok/tt_video_detail.json
RENAMED
|
File without changes
|
{openboost_cli-2.0.0 → openboost_cli-2.0.1}/src/openboost_cli/schemas/tiktok/tt_video_info_list.json
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
|