Appendix
This section contains reference configurations, scripts, and examples used across the documentation.
These can be used as supporting material while following the steps described in the main sections.
MCP Client Script (Python)
import argparse
import asyncio
import json
from fastmcp import Client
from fastmcp.client.auth import BearerAuth
async def main():
parser = argparse.ArgumentParser(description="Generic MCP Test Client")
parser.add_argument("--mcp_server", required=True, help="URL (http/sse) or local server python script path(stdio)")
parser.add_argument("--mcp_auth_token", help="Optional bearer token for authentication")
subparsers = parser.add_subparsers(dest="action_cmd", required=True)
tool_parser = subparsers.add_parser("tools")
tool_parser.add_argument("--list", action="store_true")
tool_parser.add_argument("--tool_cmd")
tool_parser.add_argument("--tool_args", default="{}")
res_parser = subparsers.add_parser("resources")
res_parser.add_argument("--list", action="store_true")
res_parser.add_argument("--resource_uri")
prompt_parser = subparsers.add_parser("prompts")
prompt_parser.add_argument("--list", action="store_true")
prompt_parser.add_argument("--prompt_name")
prompt_parser.add_argument("--prompt_args", default="{}")
args = parser.parse_args()
if args.mcp_server.startswith(("http://", "https://")):
transport_type = "sse" if "/sse" in args.mcp_server else "http"
server_config = {
"transport": transport_type,
"url": args.mcp_server
}
if args.mcp_auth_token:
server_config["auth"] = BearerAuth(token=f"{args.mcp_auth_token}")
else:
server_config = {
"transport": "stdio",
"command": "node" if args.mcp_server.endswith(".js") else "python",
"args": [args.mcp_server]
}
config = {"mcpServers": {"target_server": server_config}}
client = Client(config)
async with client:
if args.action_cmd == "tools":
if args.list:
tools = await client.list_tools()
print(f"Available Tools: {tools}")
elif args.tool_cmd:
result = await client.call_tool(args.tool_cmd, json.loads(args.tool_args))
print(f"Tool Result: {result}")
elif args.action_cmd == "resources":
if args.list:
resources = await client.list_resources()
print(f"Available Resources: {resources}")
elif args.resource_uri:
print(await client.read_resource(args.resource_uri))
elif args.action_cmd == "prompts":
if args.list:
prompts = await client.list_prompts()
print(f"Available Prompts: {prompts}")
elif args.prompt_name:
messages = await client.get_prompt(args.prompt_name, json.loads(args.prompt_args))
print(messages)
if __name__ == "__main__":
asyncio.run(main())Source: MCP Sensor Observability
MCP File Server (HTTP) — Python
Source: MCP Sensor Observability
MCP File Server (STDIO) — Python
Source: MCP Sensor Observability
MCP Client Script — JavaScript
MCP File Server — JavaScript
MCP File Server (STDIO) — JavaScript
package.json - Javascript
chat_agent.py
help_agent_crewai.py
search_agent.py
search_agent_gemini.py
hello_world_oai.py
search_agent_litellm.py
Last updated