Este es un servidor Protocolo de Contexto de Modelo (MCP)](https://modelcontextprotocol.io/introduction) que admite conexiones MCP remotas, con autenticación OAuth de Cloudflare integrada.
Integra herramientas basadas en la API de Cloudflare AutoRAG para permitirle acceder y consultar las instancias de AutoRAG de su cuenta.
Herramientas disponibles actualmente:
| Herramienta | Descripción |
| ----------- | -------------------------------------------------------------------------------- |
| list_rags | Lista las instancias de AutoRAG con paginación |
| search | Busca documentos en una instancia de AutoRAG específica mediante una consulta (URL, título o fragmento) |
| ai_search | Realiza búsquedas con IA en documentos de un AutoRAG específico |
Este servidor MCP aún está en desarrollo y planeamos agregar más herramientas en el futuro.
Listar todos los AutoRAG de mi cuenta.Buscar documentos en el AutoRAG con ID 'rag123' usando la consulta 'cloudflare security'.Realizar una búsqueda con IA en el AutoRAG con ID 'rag456' para 'mejores prácticas para almacenes vectoriales'.
Si su cliente MCP es compatible con servidores MCP remotos, le permitirá aceptar la URL del servidor (https://autorag.mcp.cloudflare.com) directamente en su interfaz (por ejemplo, en Cloudflare AI Playground).
Si tu cliente aún no admite servidores MCP remotos, deberás configurar su archivo de configuración correspondiente usando mcp-remote (https://www.npmjs.com/package/mcp-remote) para especificar a qué servidores puede acceder.
Reemplaza el contenido con la siguiente configuración:
{
"mcpServers": {
"cloudflare": {
"command": "npx",
"args": ["mcp-remote", "https://autorag.mcp.cloudflare.com/mcp"]
}
}
}Una vez configurado el archivo de configuración, reinicia el cliente MCP y se abrirá una ventana del navegador con tu página de inicio de sesión OAuth. Sigue el proceso de autenticación para otorgar al cliente acceso a tu servidor MCP. Tras otorgar el acceso, las herramientas estarán disponibles para su uso.
v1
El Protocolo de contexto de modelo (MCP) es un nuevo protocolo estandarizado para gestionar el contexto entre modelos de lenguaje grandes (LLM) y sistemas externos. En este repositorio, proporcionamos un instalador y un servidor MCP para la API de Cloudflare.
Esto le permite usar Claude Desktop, o cualquier cliente MCP, para usar lenguaje natural y lograr cosas en su cuenta de Cloudflare, por ejemplo:
Implemente un nuevo Worker con un objeto duradero de ejemplo.¿Puede informarme sobre los datos en mi base de datos D1 llamada '...'?¿Puede copiar todas las entradas de mi espacio de nombres KV '...' en mi depósito R2 '...'?
- Ejecuta
npx @cloudflare/mcp-server-cloudflare init - o clona localmente tu repo: "git clone https://github.com/avilaroman/MCP.git"
- Reinicia Claude Desktop. Deberías ver un pequeño ícono 🔨 que muestra las siguientes herramientas disponibles para usar:
get_kvs: enumera todos los espacios de nombres de KV en su cuentakv_get: obtiene un valor de un espacio de nombres de KVkv_put: almacena un valor en un espacio de nombres de KVkv_list: enumera las claves en un espacio de nombres de KVkv_delete: elimina una clave de un espacio de nombres de KV
r2_list_buckets: enumera todos los depósitos de R2 en su cuentar2_create_bucket: crea un nuevo depósito de R2r2_delete_bucket: eliminar un depósito R2r2_list_objects: enumerar objetos en un depósito R2r2_get_object: obtener un objeto de un depósito R2r2_put_object: colocar un objeto en un depósito R2r2_delete_object: eliminar un objeto de un depósito R2
d1_list_databases: enumerar todas las bases de datos D1 en su cuentad1_create_database: crear una nueva base de datos D1d1_delete_database: eliminar una base de datos D1d1_query: ejecutar una consulta SQL en una base de datos D1
worker_list: enumerar todos los Workers en su cuentaworker_get: obtener el contenido del script de un Workersworker_put: crear o actualizar un script de Workerworker_delete: eliminar un script de Worker
analytics_get: recuperar datos analíticos para su dominio- Incluye métricas como solicitudes, ancho de banda, amenazas y vistas de página
- Admite filtrado por rango de fechas
En la carpeta del proyecto actual,
git clone https://github.com/avilaroman/MCP.git
cd MCP
luego ejecute:
pnpm install
pnpm build:watch
Luego, en una segunda terminal:
node dist/index.js init
Esto vinculará Claude Desktop con su versión instalada localmente para que pueda probarla.
Para ejecutar el servidor localmente, ejecute node dist/index run <account-id>.
Si está usando un cliente MCP alternativo o está probando cosas localmente, emita el comando tools/list para obtener una lista actualizada de todas las herramientas disponibles. Luego, puede llamarlas directamente usando el comando tools/call.
// Listar Workers
worker_list()
// Obtener el código del Worker
worker_get({ name: "my-worker" })
// Actualizar Worker
worker_put({
name: "my-worker",
script: "export default { async fetch(request, env, ctx) { ... }}",
bindings: [
{
type: "kv_namespace",
name: "MY_KV",
namespace_id: "abcd1234"
},
{
type: "r2_bucket",
name: "MY_BUCKET",
bucket_name: "my-files"
}
],
compatible_date: "2024-01-01",
compatible_flags: ["nodejs_compat"]
})
// Eliminar Workers
worker_delete({ name: "my-worker" })// Lista de espacios de nombres de KV
get_kvs()
// Obtener valor
kv_get({
namespaceId: "your_namespace_id",
key: "myKey"
})
// Almacenar valor
kv_put({
namespaceId: "your_namespace_id",
key: "myKey",
value: "myValue",
expirationTtl: 3600 // opcional, en segundos
})
// Lista de claves
kv_list({
namespaceId: "your_namespace_id",
prefix: "app_", // opcional
limit: 10 // opcional
})
// Eliminar clave
kv_delete({
namespaceId: "your_namespace_id",
key: "myKey"
})// Lista de depósitos
r2_list_buckets()
// Crear depósito
r2_create_bucket({ name: "my-bucket" })
// Eliminar depósito
r2_delete_bucket({ name: "my-bucket" })
// Listar objetos en el depósito
r2_list_objects({
depósito: "my-bucket",
prefijo: "carpeta/", // opcional
delimitador: "/", // opcional
límite: 1000 // opcional
})
// Obtener objeto
r2_get_object({
depósito: "my-bucket",
clave: "carpeta/archivo.txt"
})
// Poner objeto
r2_put_object({


