aiohttp-tiny-mcp 0.5.2__tar.gz → 0.5.3__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.
- {aiohttp_tiny_mcp-0.5.2 → aiohttp_tiny_mcp-0.5.3}/PKG-INFO +1 -1
- {aiohttp_tiny_mcp-0.5.2 → aiohttp_tiny_mcp-0.5.3}/pyproject.toml +1 -1
- {aiohttp_tiny_mcp-0.5.2 → aiohttp_tiny_mcp-0.5.3}/pyproject.toml.orig +1 -1
- {aiohttp_tiny_mcp-0.5.2 → aiohttp_tiny_mcp-0.5.3}/src/aiohttp_tiny_mcp/client/stdio.py +3 -1
- {aiohttp_tiny_mcp-0.5.2 → aiohttp_tiny_mcp-0.5.3}/src/aiohttp_tiny_mcp/testing.py +8 -4
- {aiohttp_tiny_mcp-0.5.2 → aiohttp_tiny_mcp-0.5.3}/LICENSE +0 -0
- {aiohttp_tiny_mcp-0.5.2 → aiohttp_tiny_mcp-0.5.3}/README.md +0 -0
- {aiohttp_tiny_mcp-0.5.2 → aiohttp_tiny_mcp-0.5.3}/src/aiohttp_tiny_mcp/__init__.py +0 -0
- {aiohttp_tiny_mcp-0.5.2 → aiohttp_tiny_mcp-0.5.3}/src/aiohttp_tiny_mcp/auth/__init__.py +0 -0
- {aiohttp_tiny_mcp-0.5.2 → aiohttp_tiny_mcp-0.5.3}/src/aiohttp_tiny_mcp/auth/jwt.py +0 -0
- {aiohttp_tiny_mcp-0.5.2 → aiohttp_tiny_mcp-0.5.3}/src/aiohttp_tiny_mcp/client/__init__.py +0 -0
- {aiohttp_tiny_mcp-0.5.2 → aiohttp_tiny_mcp-0.5.3}/src/aiohttp_tiny_mcp/client/base.py +0 -0
- {aiohttp_tiny_mcp-0.5.2 → aiohttp_tiny_mcp-0.5.3}/src/aiohttp_tiny_mcp/client/http.py +0 -0
- {aiohttp_tiny_mcp-0.5.2 → aiohttp_tiny_mcp-0.5.3}/src/aiohttp_tiny_mcp/console/__init__.py +0 -0
- {aiohttp_tiny_mcp-0.5.2 → aiohttp_tiny_mcp-0.5.3}/src/aiohttp_tiny_mcp/console/console.css +0 -0
- {aiohttp_tiny_mcp-0.5.2 → aiohttp_tiny_mcp-0.5.3}/src/aiohttp_tiny_mcp/console/console.js +0 -0
- {aiohttp_tiny_mcp-0.5.2 → aiohttp_tiny_mcp-0.5.3}/src/aiohttp_tiny_mcp/console/index.html +0 -0
- {aiohttp_tiny_mcp-0.5.2 → aiohttp_tiny_mcp-0.5.3}/src/aiohttp_tiny_mcp/console/oauth-callback.html +0 -0
- {aiohttp_tiny_mcp-0.5.2 → aiohttp_tiny_mcp-0.5.3}/src/aiohttp_tiny_mcp/extensions/__init__.py +0 -0
- {aiohttp_tiny_mcp-0.5.2 → aiohttp_tiny_mcp-0.5.3}/src/aiohttp_tiny_mcp/extensions/skills.py +0 -0
- {aiohttp_tiny_mcp-0.5.2 → aiohttp_tiny_mcp-0.5.3}/src/aiohttp_tiny_mcp/oauth/__init__.py +0 -0
- {aiohttp_tiny_mcp-0.5.2 → aiohttp_tiny_mcp-0.5.3}/src/aiohttp_tiny_mcp/oauth/github.py +0 -0
- {aiohttp_tiny_mcp-0.5.2 → aiohttp_tiny_mcp-0.5.3}/src/aiohttp_tiny_mcp/oauth/provider.py +0 -0
- {aiohttp_tiny_mcp-0.5.2 → aiohttp_tiny_mcp-0.5.3}/src/aiohttp_tiny_mcp/oauth/server.py +0 -0
- {aiohttp_tiny_mcp-0.5.2 → aiohttp_tiny_mcp-0.5.3}/src/aiohttp_tiny_mcp/oauth/tokens.py +0 -0
- {aiohttp_tiny_mcp-0.5.2 → aiohttp_tiny_mcp-0.5.3}/src/aiohttp_tiny_mcp/protocol/__init__.py +0 -0
- {aiohttp_tiny_mcp-0.5.2 → aiohttp_tiny_mcp-0.5.3}/src/aiohttp_tiny_mcp/protocol/adapter.py +0 -0
- {aiohttp_tiny_mcp-0.5.2 → aiohttp_tiny_mcp-0.5.3}/src/aiohttp_tiny_mcp/protocol/core.py +0 -0
- {aiohttp_tiny_mcp-0.5.2 → aiohttp_tiny_mcp-0.5.3}/src/aiohttp_tiny_mcp/protocol/models.py +0 -0
- {aiohttp_tiny_mcp-0.5.2 → aiohttp_tiny_mcp-0.5.3}/src/aiohttp_tiny_mcp/protocol/schema.py +0 -0
- {aiohttp_tiny_mcp-0.5.2 → aiohttp_tiny_mcp-0.5.3}/src/aiohttp_tiny_mcp/protocol/selection.py +0 -0
- {aiohttp_tiny_mcp-0.5.2 → aiohttp_tiny_mcp-0.5.3}/src/aiohttp_tiny_mcp/protocol/v2024_11_05.py +0 -0
- {aiohttp_tiny_mcp-0.5.2 → aiohttp_tiny_mcp-0.5.3}/src/aiohttp_tiny_mcp/protocol/v2025_03_26.py +0 -0
- {aiohttp_tiny_mcp-0.5.2 → aiohttp_tiny_mcp-0.5.3}/src/aiohttp_tiny_mcp/protocol/v2025_06_18.py +0 -0
- {aiohttp_tiny_mcp-0.5.2 → aiohttp_tiny_mcp-0.5.3}/src/aiohttp_tiny_mcp/protocol/v2025_11_25.py +0 -0
- {aiohttp_tiny_mcp-0.5.2 → aiohttp_tiny_mcp-0.5.3}/src/aiohttp_tiny_mcp/protocol/v2026_07_28.py +0 -0
- {aiohttp_tiny_mcp-0.5.2 → aiohttp_tiny_mcp-0.5.3}/src/aiohttp_tiny_mcp/py.typed +0 -0
- {aiohttp_tiny_mcp-0.5.2 → aiohttp_tiny_mcp-0.5.3}/src/aiohttp_tiny_mcp/server/__init__.py +0 -0
- {aiohttp_tiny_mcp-0.5.2 → aiohttp_tiny_mcp-0.5.3}/src/aiohttp_tiny_mcp/server/dispatcher.py +0 -0
- {aiohttp_tiny_mcp-0.5.2 → aiohttp_tiny_mcp-0.5.3}/src/aiohttp_tiny_mcp/server/exchange.py +0 -0
- {aiohttp_tiny_mcp-0.5.2 → aiohttp_tiny_mcp-0.5.3}/src/aiohttp_tiny_mcp/server/http.py +0 -0
- {aiohttp_tiny_mcp-0.5.2 → aiohttp_tiny_mcp-0.5.3}/src/aiohttp_tiny_mcp/server/registry.py +0 -0
- {aiohttp_tiny_mcp-0.5.2 → aiohttp_tiny_mcp-0.5.3}/src/aiohttp_tiny_mcp/server/request_state.py +0 -0
- {aiohttp_tiny_mcp-0.5.2 → aiohttp_tiny_mcp-0.5.3}/src/aiohttp_tiny_mcp/server/specs.py +0 -0
- {aiohttp_tiny_mcp-0.5.2 → aiohttp_tiny_mcp-0.5.3}/src/aiohttp_tiny_mcp/server/sse.py +0 -0
- {aiohttp_tiny_mcp-0.5.2 → aiohttp_tiny_mcp-0.5.3}/src/aiohttp_tiny_mcp/server/stdio.py +0 -0
- {aiohttp_tiny_mcp-0.5.2 → aiohttp_tiny_mcp-0.5.3}/src/aiohttp_tiny_mcp/server/subscriptions.py +0 -0
- {aiohttp_tiny_mcp-0.5.2 → aiohttp_tiny_mcp-0.5.3}/src/aiohttp_tiny_mcp/server/tasks.py +0 -0
- {aiohttp_tiny_mcp-0.5.2 → aiohttp_tiny_mcp-0.5.3}/src/aiohttp_tiny_mcp/storage/__init__.py +0 -0
- {aiohttp_tiny_mcp-0.5.2 → aiohttp_tiny_mcp-0.5.3}/src/aiohttp_tiny_mcp/storage/hub.py +0 -0
- {aiohttp_tiny_mcp-0.5.2 → aiohttp_tiny_mcp-0.5.3}/src/aiohttp_tiny_mcp/storage/namespaces.py +0 -0
- {aiohttp_tiny_mcp-0.5.2 → aiohttp_tiny_mcp-0.5.3}/src/aiohttp_tiny_mcp/storage/postgres.py +0 -0
- {aiohttp_tiny_mcp-0.5.2 → aiohttp_tiny_mcp-0.5.3}/src/aiohttp_tiny_mcp/storage/redis.py +0 -0
- {aiohttp_tiny_mcp-0.5.2 → aiohttp_tiny_mcp-0.5.3}/src/aiohttp_tiny_mcp/storage/sessions.py +0 -0
- {aiohttp_tiny_mcp-0.5.2 → aiohttp_tiny_mcp-0.5.3}/src/aiohttp_tiny_mcp/storage/sqlite.py +0 -0
- {aiohttp_tiny_mcp-0.5.2 → aiohttp_tiny_mcp-0.5.3}/src/aiohttp_tiny_mcp/transport/__init__.py +0 -0
- {aiohttp_tiny_mcp-0.5.2 → aiohttp_tiny_mcp-0.5.3}/src/aiohttp_tiny_mcp/transport/metadata.py +0 -0
- {aiohttp_tiny_mcp-0.5.2 → aiohttp_tiny_mcp-0.5.3}/src/aiohttp_tiny_mcp/transport/sse.py +0 -0
|
@@ -13,6 +13,8 @@ from aiohttp_tiny_mcp.protocol.models import Implementation
|
|
|
13
13
|
|
|
14
14
|
from .base import BaseClient, ClientError, Elicitor
|
|
15
15
|
|
|
16
|
+
DEFAULT_STREAM_LIMIT = 1024 * 1024
|
|
17
|
+
|
|
16
18
|
|
|
17
19
|
@runtime_checkable
|
|
18
20
|
class ByteWriter(Protocol):
|
|
@@ -76,7 +78,7 @@ class StdioClient(BaseClient):
|
|
|
76
78
|
adapter: Adapter,
|
|
77
79
|
client_info: Implementation | None = None,
|
|
78
80
|
on_ask: Elicitor | None = None,
|
|
79
|
-
limit: int =
|
|
81
|
+
limit: int = DEFAULT_STREAM_LIMIT,
|
|
80
82
|
) -> AsyncIterator[StdioClient]:
|
|
81
83
|
"""Launch cmd with protocol pipes and inherit stderr.
|
|
82
84
|
|
|
@@ -12,7 +12,7 @@ from aiohttp import web
|
|
|
12
12
|
|
|
13
13
|
from .client.base import BaseClient, Elicitor
|
|
14
14
|
from .client.http import Client
|
|
15
|
-
from .client.stdio import StdioClient
|
|
15
|
+
from .client.stdio import DEFAULT_STREAM_LIMIT, StdioClient
|
|
16
16
|
from .protocol.adapter import Adapter
|
|
17
17
|
from .protocol.core import elicit_accept, elicit_decline
|
|
18
18
|
from .protocol.models import Implementation
|
|
@@ -25,8 +25,8 @@ from .server.stdio import serve_stdio
|
|
|
25
25
|
class Pipe:
|
|
26
26
|
"""One direction of an in-memory connection."""
|
|
27
27
|
|
|
28
|
-
def __init__(self) -> None:
|
|
29
|
-
self.reader = asyncio.StreamReader()
|
|
28
|
+
def __init__(self, *, limit: int = DEFAULT_STREAM_LIMIT) -> None:
|
|
29
|
+
self.reader = asyncio.StreamReader(limit=limit)
|
|
30
30
|
|
|
31
31
|
def write(self, data: bytes) -> None:
|
|
32
32
|
self.reader.feed_data(data)
|
|
@@ -62,12 +62,16 @@ async def connect(
|
|
|
62
62
|
on_ask: Elicitor | None = None,
|
|
63
63
|
client_info: Implementation | None = None,
|
|
64
64
|
initialize: bool = True,
|
|
65
|
+
limit: int = DEFAULT_STREAM_LIMIT,
|
|
65
66
|
) -> AsyncIterator[BaseClient]:
|
|
66
67
|
"""A client talking to `registry` through memory.
|
|
67
68
|
|
|
68
69
|
No port, no subprocess, and nothing to tear down. The protocol is the
|
|
69
70
|
real one: pick `adapter` to see what a client of that revision sees.
|
|
70
71
|
|
|
72
|
+
`limit` bounds request and response lines in bytes. The default is
|
|
73
|
+
1 MiB, matching `StdioClient.spawn`.
|
|
74
|
+
|
|
71
75
|
Answer a handler's questions with `answers`, keyed by any part of the
|
|
72
76
|
question's text::
|
|
73
77
|
|
|
@@ -75,7 +79,7 @@ async def connect(
|
|
|
75
79
|
result = await client.call_tool("deploy", {"service": "web"})
|
|
76
80
|
"""
|
|
77
81
|
chosen = pick(adapter)
|
|
78
|
-
to_server, to_client = Pipe(), Pipe()
|
|
82
|
+
to_server, to_client = Pipe(limit=limit), Pipe(limit=limit)
|
|
79
83
|
|
|
80
84
|
def send(payload: Mapping[str, Any]) -> None:
|
|
81
85
|
to_client.write((json.dumps(payload, ensure_ascii=False) + "\n").encode())
|
|
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
|
{aiohttp_tiny_mcp-0.5.2 → aiohttp_tiny_mcp-0.5.3}/src/aiohttp_tiny_mcp/console/oauth-callback.html
RENAMED
|
File without changes
|
{aiohttp_tiny_mcp-0.5.2 → aiohttp_tiny_mcp-0.5.3}/src/aiohttp_tiny_mcp/extensions/__init__.py
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
|
{aiohttp_tiny_mcp-0.5.2 → aiohttp_tiny_mcp-0.5.3}/src/aiohttp_tiny_mcp/protocol/selection.py
RENAMED
|
File without changes
|
{aiohttp_tiny_mcp-0.5.2 → aiohttp_tiny_mcp-0.5.3}/src/aiohttp_tiny_mcp/protocol/v2024_11_05.py
RENAMED
|
File without changes
|
{aiohttp_tiny_mcp-0.5.2 → aiohttp_tiny_mcp-0.5.3}/src/aiohttp_tiny_mcp/protocol/v2025_03_26.py
RENAMED
|
File without changes
|
{aiohttp_tiny_mcp-0.5.2 → aiohttp_tiny_mcp-0.5.3}/src/aiohttp_tiny_mcp/protocol/v2025_06_18.py
RENAMED
|
File without changes
|
{aiohttp_tiny_mcp-0.5.2 → aiohttp_tiny_mcp-0.5.3}/src/aiohttp_tiny_mcp/protocol/v2025_11_25.py
RENAMED
|
File without changes
|
{aiohttp_tiny_mcp-0.5.2 → aiohttp_tiny_mcp-0.5.3}/src/aiohttp_tiny_mcp/protocol/v2026_07_28.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{aiohttp_tiny_mcp-0.5.2 → aiohttp_tiny_mcp-0.5.3}/src/aiohttp_tiny_mcp/server/request_state.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{aiohttp_tiny_mcp-0.5.2 → aiohttp_tiny_mcp-0.5.3}/src/aiohttp_tiny_mcp/server/subscriptions.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{aiohttp_tiny_mcp-0.5.2 → aiohttp_tiny_mcp-0.5.3}/src/aiohttp_tiny_mcp/storage/namespaces.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{aiohttp_tiny_mcp-0.5.2 → aiohttp_tiny_mcp-0.5.3}/src/aiohttp_tiny_mcp/transport/__init__.py
RENAMED
|
File without changes
|
{aiohttp_tiny_mcp-0.5.2 → aiohttp_tiny_mcp-0.5.3}/src/aiohttp_tiny_mcp/transport/metadata.py
RENAMED
|
File without changes
|
|
File without changes
|