Framework per agenti
Il server MCP di Criora all’indirizzo https://criora.com/mcp funziona in qualsiasi framework per agenti che parli il Model Context Protocol tramite Streamable HTTP. Non servono account né chiavi. Ogni esempio qui sotto dà a un agente tutti gli strumenti di Criora, e ognuno è stato eseguito sul server in produzione con le versioni delle librerie indicate. API dei dati e agenti AI elenca gli strumenti e a cosa risponde ciascuno.
LangChain
pip install langchain langchain-anthropic langchain-mcp-adapters
import asyncio
from langchain.agents import create_agent
from langchain_mcp_adapters.client import MultiServerMCPClient
CRIORA = {"transport": "streamable_http", "url": "https://criora.com/mcp"}
async def main():
tools = await MultiServerMCPClient({"criora": CRIORA}).get_tools()
agent = create_agent("anthropic:claude-sonnet-5-5", tools)
question = "Is it safe to travel to Manila next week?"
answer = await agent.ainvoke({"messages": question})
print(answer["messages"][-1].content)
asyncio.run(main())
Eseguito con langchain 1.4 e langchain-mcp-adapters 0.3. Al posto del modello Claude va bene qualsiasi modello di chat supportato da LangChain.
LlamaIndex
pip install llama-index-core llama-index-tools-mcp llama-index-llms-anthropic
import asyncio
from llama_index.core.agent.workflow import FunctionAgent
from llama_index.llms.anthropic import Anthropic
from llama_index.tools.mcp import BasicMCPClient, McpToolSpec
async def main():
criora = McpToolSpec(client=BasicMCPClient("https://criora.com/mcp"))
tools = await criora.to_tool_list_async()
agent = FunctionAgent(tools=tools, llm=Anthropic(model="claude-sonnet-5-5"))
question = "Which countries face the most dangerous weather this week?"
print(await agent.run(question))
asyncio.run(main())
Eseguito con llama-index-core 0.14 e llama-index-tools-mcp 0.4.
OpenAI Agents SDK
pip install openai-agents
import asyncio
from agents import Agent, Runner
from agents.mcp import MCPServerStreamableHttp
async def main():
params = {"url": "https://criora.com/mcp"}
async with MCPServerStreamableHttp(name="Criora", params=params) as criora:
agent = Agent(
name="Risk analyst",
instructions="Answer with Criora's data and name its sources.",
mcp_servers=[criora],
)
question = "How exposed is Rotterdam to river flooding by 2050?"
result = await Runner.run(agent, question)
print(result.final_output)
asyncio.run(main())
Eseguito con openai-agents 0.20. Perché sia la Responses API di OpenAI a chiamare il server, senza client MCP nel tuo codice, passa invece all’agente HostedMCPTool(tool_config={"type": "mcp", "server_label": "criora", "server_url": "https://criora.com/mcp", "require_approval": "never"}) in tools.
n8n
- Aggiungi un nodo AI Agent e collegagli un modello di chat.
- In Tool, aggiungi un MCP Client Tool.
- Imposta Endpoint su
https://criora.com/mcp, Server Transport su HTTP Streamable, Authentication su None e Tools to Include su All.
Da sapere
- Le risposte sono sintetiche per impostazione predefinita: i campi che rispondono alla domanda. Passa
response_format: "detailed"a uno strumento per avere tutti i campi, come la provenienza di ogni bollettino o il testo completo di un’allerta. - Ogni risposta indica le sue fonti, e una risposta sui pericoli riporta in
creditla licenza e l’attribuzione di ciascuna. Quando pubblichi ciò che un agente ha trovato, cita Criora e la fonte indicata, come spiega API dei dati e agenti AI nella parte su fonti e attribuzione. - Il server è di sola lettura e gratuito secondo i Termini di servizio.