demo_github.py•1.23 kB
"""demo: github sdk via mcp."""
import json
import sys
def send_request(method: str, params: dict, req_id: int = 1):
"""send mcp request to stdin."""
request = {
"jsonrpc": "2.0",
"id": req_id,
"method": method,
"params": params
}
print(json.dumps(request), file=sys.stdout, flush=True)
def main():
"""demo github mcp tools."""
print("=== github mcp demo ===\n")
# 1. list github tools
print("1. listing github tools...")
send_request("tools/list", {})
# 2. get a user
print("\n2. calling github.MainClass.Github.get_user...")
send_request("tools/call", {
"name": "github.MainClass.Github.get_user",
"arguments": {
"login": "octocat"
}
}, req_id=2)
# 3. get a repository
print("\n3. calling github.MainClass.Github.get_repo...")
send_request("tools/call", {
"name": "github.MainClass.Github.get_repo",
"arguments": {
"full_name_or_id": "github/docs"
}
}, req_id=3)
print("\n=== demo complete ===")
print("requires: export GITHUB_TOKEN=...")
print("run: python -m src.mcp_server")
if __name__ == "__main__":
main()