Standard I/O (stdio) Clients
For stdio clients, there is a Pond MCP binary that you can download and run directly. This is located at
/Applications/Pond.app/Contents/MacOS/pond_mcp_server
You'll need to register your local app with Pond to run the server properly. To do this, press "Connect a new app" in Pond, choose an app name that doesn't conflict with existing ones, and get
the APP_ID
and the POND_ACCESS_TOKEN
from the JSON snippet.
Now make sure to run the server with the following environment variables:
TRANSPORT=stdio
APP_ID=your_app_id
POND_ACCESS_TOKEN=your_access_token
Example
If you're writing an MCP client from scratch, you should first follow the official tutorial here for making a Python client. Once you get that working, replace the following functions in your code:
async def connect_to_server(
self,
server_binary_path: str,
env: dict[str, str]
):
"""Connect to an MCP server binary
Args:
server_binary_path: Path to the server binary
env: Environment variables to set for the server
"""
server_params = StdioServerParameters(
command=server_binary_path,
env=env
)
stdio_transport = await self.exit_stack.enter_async_context(stdio_client(server_params))
self.stdio, self.write = stdio_transport
self.session = await self.exit_stack.enter_async_context(ClientSession(self.stdio, self.write))
await self.session.initialize()
# List available tools
response = await self.session.list_tools()
tools = response.tools
print("\nConnected to server with tools:", [tool.name for tool in tools])
And the main function:
async def main():
SERVER_BINARY_PATH = "/Applications/Pond.app/Contents/MacOS/pond_mcp_server"
APP_ID = "your_app_id"
secret_key = input("Enter your Pond access token: ")
env = {
"TRANSPORT": "stdio",
"APP_ID": APP_ID,
"POND_ACCESS_TOKEN": secret_key
}
client = MCPClient()
try:
await client.connect_to_server(SERVER_BINARY_PATH, env)
await client.chat_loop()
finally:
await client.cleanup()