protogrid (Python)
Client for the protogrid registry: find MCP servers by intent, get a machine-readable connection block, and connect with no human in the loop wherever the server allows it.
import os
from protogrid import ProtogridClient, find_connectable, open_session
registry = ProtogridClient() # public registry; ProtogridClient("http://localhost:8080") for a local stack
found = find_connectable(registry, "send an email", secrets=os.environ)
async with open_session(found.connection, os.environ) as session: # mcp.ClientSession, initialized
tools = await session.list_tools()
ProtogridClient/AsyncProtogridClient:search,get_server,list_tools,list_all_tools,get_connection, andcheck/get_checkfor an on-demand check of any remote MCP server URL (quality and Claude and OpenAI directory readiness).- No key needed. A free key from https://protogrid.dev/account raises the limits (60 requests per minute, 5,000 per day); the client reads
PROTOGRID_API_KEY, or passProtogridClient(api_key=...). - Connection blocks carry
${NAME}placeholders;substitute_secretsfills them from your own store. The registry never sees secret values. connection_class: R0 remote, no auth · R1 remote, static secret you hold · R2 remote OAuth (one consent) · L0 local package (allow_local=True) ·unknown.- R2:
open_session(conn, oauth=OAuthOptions(store, consent))runs the one-time consent (loopback_consentormanual_consent) through the official SDK's OAuth provider and keeps tokens in yourTokenStore; later runs need no human. - PydanticAI:
to_pydantic_ai(conn, secrets)returns anMCPToolset.to_fastmcp_transportandto_mcp_serversare pure formatters. - Install:
pip install protogrid-sdk(imported asprotogrid). Extras:protogrid-sdk[mcp]foropen_session,protogrid-sdk[pydantic-ai]for the toolset.
Examples: examples/find_and_call.py (search → connect → call a tool) and examples/pydantic_ai_agent.py (agent with a registry-found toolset, no LLM key needed).
Release files for protogrid-sdk 0.3.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| protogrid_sdk-0.3.0.tar.gz | 177.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| protogrid_sdk-0.3.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 193.0 kB
Release files / protogrid_sdk-0.3.0.tar.gz
| Download URL | protogrid_sdk-0.3.0.tar.gz |
|---|---|
| Size | 177.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
5c0a38e301598c11437de41ead26a65ca320b2afdee10f3cdb0c53061d766f49
|
|
BLAKE2b-256 checksum How to use checksums |
fa556e31ab4a4c12063c7e8dc23e8aa51ac3e40d4f96e4648c36fc35185d217d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.19 {"installer":{"name":"uv","version":"0.12.19","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / protogrid_sdk-0.3.0-py3-none-any.whl
| Download URL | protogrid_sdk-0.3.0-py3-none-any.whl |
|---|---|
| Size | 15.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
693614328e2c5e1fa5965c5d051cacf5ec6c2a892cec95fefa211c618e27c5b9
|
|
BLAKE2b-256 checksum How to use checksums |
5e9ce653289bcff7d9bba7aa87c9a64602316adea1a351cd963028115cd1b653
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.19 {"installer":{"name":"uv","version":"0.12.19","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|