Loop MCP Server
Permite que los LLMs procesen elementos de array secuencialmente con una tarea específica.
GitHub
1
Prueba este MCPPatrocinadoDocumentación
Loop MCP Server
Un servidor MCP (Model Context Protocol) que permite a los LLM procesar arreglos elemento por elemento con una tarea específica.
Descripción general
Este servidor MCP proporciona herramientas para:
- Inicializar un arreglo con una descripción de tarea
- Obtener elementos uno por uno o en lotes para procesamiento
- Almacenar resultados para cada elemento o lote procesado
- Recuperar todos los resultados (solo después de que todos los elementos estén procesados)
- Resumen opcional de resultados
- Tamaño de lote configurable para un procesamiento eficiente
Instalación
npm install
Uso
Ejecutando el servidor
npm start
Herramientas disponibles
-
initialize_array - Configurar el arreglo y la tarea
array: El arreglo de elementos a procesartask: Descripción de qué hacer con cada elementobatchSize(opcional): Número de elementos a procesar en cada lote (predeterminado: 1)
-
get_next_item - Obtener el siguiente elemento a procesar
- Devuelve: Elemento actual, índice, tarea y cantidad restante
-
get_next_batch - Obtener el siguiente lote de elementos según el tamaño del lote
- Devuelve: Arreglo de elementos, índices, tarea y cantidad restante
-
store_result - Almacenar el resultado del procesamiento
result: El resultado del procesamiento (valor único o arreglo para procesamiento por lotes)
-
get_all_results - Obtener todos los resultados al finalizar
summarize(opcional): Incluir un resumen- Nota: Esto generará un error si el procesamiento no está completo
-
reset - Limpiar el estado de procesamiento actual
Flujos de trabajo de ejemplo
Procesamiento de un solo elemento
// 1. Initialize
await callTool('initialize_array', {
array: [1, 2, 3, 4, 5],
task: 'Square each number'
});
// 2. Process each item
while (true) {
const item = await callTool('get_next_item');
if (item.text === 'All items have been processed.') break;
// Process the item (e.g., square it)
const result = item.value * item.value;
await callTool('store_result', { result });
}
// 3. Get final results
const results = await callTool('get_all_results', { summarize: true });
Procesamiento por lotes
// 1. Initialize with batch size
await callTool('initialize_array', {
array: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
task: 'Double each number',
batchSize: 3
});
// 2. Process in batches
while (true) {
const batch = await callTool('get_next_batch');
if (batch.text === 'All items have been processed.') break;
// Process the batch
const results = batch.items.map(item => item * 2);
await callTool('store_result', { result: results });
}
// 3. Get final results
const results = await callTool('get_all_results', { summarize: true });
Ejecutando el ejemplo
node example-client.js
Integración con Claude Desktop
Agregue a su configuración de Claude Desktop:
{
"mcpServers": {
"loop-processor": {
"command": "node",
"args": ["/path/to/loop_mcp/server.js"]
}
}
}