Dans ce guide, vous apprendrez à créer un agent PydanticAI capable d'interagir avec le SQL playground de ClickHouse via le serveur MCP de ClickHouse.
Prérequis
- Python doit être installé sur votre système.
pipdoit être installé sur votre système.- Vous aurez besoin d'une API key Anthropic, ou d'une API key d'un autre LLM provider
Vous pouvez exécuter les étapes suivantes soit depuis votre REPL Python, soit à l'aide d'un script.
Installer les bibliothèques
Installez la bibliothèque requise en exécutant les commandes suivantes :
pip install -q --upgrade pip
pip install -q "pydantic-ai-slim[mcp]"
pip install -q "pydantic-ai-slim[anthropic]" # remplacez par le paquet approprié si vous utilisez un autre LLM providerConfigurer les informations d'authentification
Ensuite, vous devrez fournir votre API key Anthropic :
import os, getpass
os.environ["ANTHROPIC_API_KEY"] = getpass.getpass("Enter Anthropic API Key:")Enter Anthropic API Key: ········Ensuite, définissez les credentials nécessaires pour vous connecter au SQL playground de ClickHouse :
env = {
"CLICKHOUSE_HOST": "sql-clickhouse.clickhouse.com",
"CLICKHOUSE_PORT": "8443",
"CLICKHOUSE_USER": "demo",
"CLICKHOUSE_PASSWORD": "",
"CLICKHOUSE_SECURE": "true"
}Initialiser le serveur MCP et l'agent PydanticAI
Configurez maintenant le serveur MCP de ClickHouse pour qu'il pointe vers le SQL playground de ClickHouse :
from pydantic_ai import Agent
from pydantic_ai.mcp import MCPServerStdio
from pydantic_ai.messages import ToolCallPart, ToolReturnPart
server = MCPServerStdio(
'uv',
args=[
'run',
'--with', 'mcp-clickhouse',
'--python', '3.13',
'mcp-clickhouse'
],
env=env
)
agent = Agent('anthropic:claude-sonnet-4-0', mcp_servers=[server])Poser une question à l'agent
Enfin, vous pouvez poser une question à l'agent :
async with agent.run_mcp_servers():
result = await agent.run("Who's done the most PRs for ClickHouse?")
print(result.output)Vous obtiendrez une réponse similaire à celle ci-dessous :
D'après les données du repository GitHub de ClickHouse, voici les principaux contributeurs par nombre de pull requests créées :
**Principaux contributeurs à ClickHouse par PR ouvertes :**
1. **alexey-milovidov** - 3,370 PR ouvertes
2. **azat** - 1,905 PR ouvertes
3. **rschu1ze** - 979 PR ouvertes
4. **alesapin** - 947 PR ouvertes
5. **tavplubix** - 896 PR ouvertes
6. **kssenii** - 871 PR ouvertes
7. **Avogar** - 805 PR ouvertes
8. **KochetovNicolai** - 700 PR ouvertes
9. **Algunenano** - 658 PR ouvertes
10. **kitaisreal** - 630 PR ouvertes
**Alexey Milovidov** se distingue de loin comme le contributeur le plus actif, avec plus de 3,370 pull requests ouvertes, soit nettement plus que tout autre contributeur. Cela est logique, car Alexey Milovidov est l'un des fondateurs et principaux développeurs de ClickHouse.
Les données montrent également que alexey-milovidov a été très actif dans la gestion des PR, avec 12,818 événements « closed » (probablement liés à la revue et à la fermeture des PR d'autres contributeurs), en plus de la création de ses propres PR.
À noter que j'ai exclu divers comptes robot/bot gérant des processus automatisés, afin de me concentrer sur les contributeurs humains et de vous fournir la réponse la plus pertinente sur la personne ayant ouvert le plus de PR pour ClickHouse.