ScavioScavio
ProductoPreciosDocumentación
Iniciar sesionComenzar
  1. Inicio
  2. Tutoriales
  3. Cómo crear un canal de notas a acciones de la reunión de MCP
Tutorial

Cómo crear un canal de notas a acciones de la reunión de MCP

Cree una canalización de MCP que extraiga elementos de acción de las notas de la reunión y los enriquezca con contexto de búsqueda. Generación de seguimiento automatizada.

Obtener clave API gratisDocumentacion API

Las notas de las reuniones contienen elementos de acción que a menudo necesitan contexto: investigación competitiva, búsqueda de precios, comparaciones de funciones o datos de mercado. Un canal de MCP puede extraer automáticamente elementos de acción de las transcripciones de reuniones y enriquecer cada uno con datos de búsqueda relevantes, convirtiendo tareas vagas en resúmenes procesables. Este tutorial crea un servidor de herramientas MCP con dos herramientas: una que analiza las notas de la reunión en acciones estructuradas y otra que enriquece cada acción con el contexto de búsqueda web. El enriquecimiento de la búsqueda cuesta $0,005 por elemento de acción a través de Scavio.

Requisitos previos

  • Python 3.10+ instalado
  • Paquetes mcp y openai instalados
  • Una clave API de Scavio de scavio.dev
  • Una clave API de OpenAI para la extracción de acciones

Guia paso a paso

Paso 1: Construya la herramienta de extracción de acciones

Cree una herramienta MCP que tome notas de reuniones sin procesar y utilice un LLM para extraer elementos de acción estructurados con asignados, fechas límite y consultas de búsqueda.

Python
from mcp.server import Server
import json
from openai import OpenAI

server = Server('meeting-actions')
llm = OpenAI()

@server.tool()
async def extract_actions(meeting_notes: str) -> str:
    """Extract action items from meeting notes."""
    response = llm.chat.completions.create(
        model='gpt-4o-mini',
        messages=[{'role': 'system', 'content': '''Extract action items from meeting notes.
Return JSON array with: task, assignee, deadline, search_query (a web search
that would provide useful context for this task).'''},
            {'role': 'user', 'content': meeting_notes}],
        response_format={'type': 'json_object'},
        max_tokens=1000
    )
    return response.choices[0].message.content

Paso 2: Cree la herramienta de enriquecimiento de búsqueda

Cree una segunda herramienta MCP que tome un elemento de acción y lo enriquezca con datos de búsqueda web relevantes. Esto convierte una simple tarea en un informe contextual.

Python
import requests, os

API_KEY = os.environ['SCAVIO_API_KEY']

@server.tool()
async def enrich_action(search_query: str, task_context: str = '') -> str:
    """Enrich an action item with web search context."""
    resp = requests.post('https://api.scavio.dev/api/v1/search',
        headers={'x-api-key': API_KEY, 'Content-Type': 'application/json'},
        json={'query': search_query, 'country_code': 'us'})
    results = resp.json().get('organic_results', [])[:5]
    enrichment = {
        'query': search_query,
        'key_findings': [
            {'source': r['link'], 'title': r['title'],
             'insight': r.get('snippet', '')}
            for r in results
        ],
        'sources_count': len(results)
    }
    return json.dumps(enrichment, indent=2)

Paso 3: Cree la herramienta de canalización completa

Cree una herramienta combinada que realice extracción y enriquecimiento en una sola llamada. Este es el principal punto de entrada para el proceso de la reunión a la acción.

Python
@server.tool()
async def meeting_to_actions(meeting_notes: str) -> str:
    """Extract action items from meeting notes and enrich each with search context."""
    # Step 1: Extract actions
    actions_json = await extract_actions(meeting_notes)
    actions = json.loads(actions_json).get('actions', [])
    # Step 2: Enrich each action
    enriched = []
    for action in actions:
        search_query = action.get('search_query', action.get('task', ''))
        enrichment_json = await enrich_action(search_query, action.get('task', ''))
        enrichment = json.loads(enrichment_json)
        enriched.append({
            **action,
            'enrichment': enrichment
        })
    result = {
        'total_actions': len(enriched),
        'credits_used': len(enriched),  # 1 search per action
        'cost': f'${len(enriched) * 0.005:.3f}',
        'actions': enriched
    }
    return json.dumps(result, indent=2)

Paso 4: Ejecute el servidor MCP

Inicie el servidor para que pueda conectarse a Claude Desktop, Cursor o cualquier cliente MCP.

Python
import asyncio
from mcp.server.stdio import stdio_server

async def main():
    async with stdio_server() as (read_stream, write_stream):
        await server.run(read_stream, write_stream)

if __name__ == '__main__':
    asyncio.run(main())

# .mcp.json configuration:
# {
#   "mcpServers": {
#     "meeting-actions": {
#       "command": "python",
#       "args": ["meeting_actions_server.py"],
#       "env": {
#         "SCAVIO_API_KEY": "your_key",
#         "OPENAI_API_KEY": "your_key"
#       }
#     }
#   }
# }

Paso 5: Prueba con ejemplos de notas de reuniones

Introduzca una transcripción de una reunión real y verifique que el proceso extraiga y enriquezca las acciones correctamente.

Python
# Test the pipeline directly (without MCP client):
import asyncio

async def test():
    notes = """Product sync 2026-05-13:
- Sarah: Research competitor pricing for CRM tools, need comparison by Friday
- Mike: Look into TikTok API options for our influencer vetting feature
- Lisa: Find best practices for AI Overview optimization, present next week
- Team: Evaluate n8n vs Zapier for our lead gen automation"""
    result = await meeting_to_actions(notes)
    data = json.loads(result)
    print(f'Extracted {data["total_actions"]} actions (cost: {data["cost"]})')
    for a in data['actions']:
        print(f'\n  Task: {a["task"]}')
        print(f'  Assignee: {a.get("assignee", "unassigned")}')
        print(f'  Context: {len(a["enrichment"]["key_findings"])} sources found')

asyncio.run(test())

Ejemplo en Python

Python
import os, json, requests
from openai import OpenAI

llm = OpenAI()
SCAVIO_KEY = os.environ['SCAVIO_API_KEY']

def extract_actions(notes):
    resp = llm.chat.completions.create(
        model='gpt-4o-mini',
        messages=[{'role': 'system', 'content': 'Extract action items as JSON array with task, assignee, search_query fields.'},
                  {'role': 'user', 'content': notes}],
        response_format={'type': 'json_object'}, max_tokens=500)
    return json.loads(resp.choices[0].message.content).get('actions', [])

def enrich(query):
    resp = requests.post('https://api.scavio.dev/api/v1/search',
        headers={'x-api-key': SCAVIO_KEY, 'Content-Type': 'application/json'},
        json={'query': query, 'country_code': 'us'})
    return [r.get('snippet', '') for r in resp.json().get('organic_results', [])[:3]]

notes = 'Sarah: Research CRM pricing. Mike: Evaluate TikTok APIs.'
for action in extract_actions(notes):
    context = enrich(action.get('search_query', action['task']))
    print(f'{action["task"]}: {len(context)} sources')

Ejemplo en JavaScript

JavaScript
const SCAVIO_KEY = process.env.SCAVIO_API_KEY;

async function enrich(query) {
  const resp = await fetch('https://api.scavio.dev/api/v1/search', {
    method: 'POST',
    headers: { 'x-api-key': SCAVIO_KEY, 'Content-Type': 'application/json' },
    body: JSON.stringify({ query, country_code: 'us' })
  });
  const data = await resp.json();
  return (data.organic_results || []).slice(0, 3)
    .map(r => ({ title: r.title, snippet: r.snippet || '' }));
}

async function main() {
  const actions = [
    { task: 'Research CRM pricing', query: 'CRM pricing comparison 2026' },
    { task: 'Evaluate TikTok APIs', query: 'TikTok API options developers 2026' }
  ];
  for (const a of actions) {
    const context = await enrich(a.query);
    console.log(`${a.task}: ${context.length} sources found`);
  }
}

main().catch(console.error);

Salida esperada

JSON
Extracted 4 actions (cost: $0.020)

  Task: Research competitor CRM pricing comparison
  Assignee: Sarah
  Context: 5 sources found

  Task: Evaluate TikTok API options for influencer vetting
  Assignee: Mike
  Context: 5 sources found

  Task: Research AI Overview optimization best practices
  Assignee: Lisa
  Context: 5 sources found

  Task: Compare n8n vs Zapier for lead generation
  Assignee: Team
  Context: 5 sources found

Tutoriales relacionados

  • Cómo crear un agente multiherramienta MCP en 2026
  • Cómo consolidar las herramientas de búsqueda de agentes en una sola API
  • Cómo agregar una base de búsqueda a cualquier agente Python

Preguntas frecuentes

La mayoria de los desarrolladores completan este tutorial en 15 a 30 minutos. Necesitaras una clave API de Scavio (el plan gratuito funciona) y un entorno de Python o JavaScript.

Python 3.10+ instalado. Paquetes mcp y openai instalados. Una clave API de Scavio de scavio.dev. Una clave API de OpenAI para la extracción de acciones. Una clave API de Scavio te da 50 creditos gratuitos al registrarte.

Si. El plan gratuito incluye 50 creditos al registrarte, mas que suficiente para completar este tutorial y crear un prototipo funcional.

Scavio tiene un paquete nativo de LangChain (langchain-scavio), un servidor MCP y una API REST simple que funciona con cualquier cliente HTTP. Este tutorial usa the raw REST API, pero puedes adaptarlo al framework que prefieras.

Recursos relacionados

Best Of

Las mejores herramientas de búsqueda de MCP para Claude Code en 2026

Read more
Best Of

Las mejores herramientas de búsqueda de MCP para Claude Desktop en 2026

Read more
Use Case

Búsqueda IDE MCP

Read more
Use Case

Servidor de búsqueda personalizado MCP

Read more
Solution

Ahorros en el contexto bajo demanda de MCP

Read more
Solution

Cambie Tavily MCP por Scavio MCP en cualquier cliente

Read more

Empieza a construir

Cree una canalización de MCP que extraiga elementos de acción de las notas de la reunión y los enriquezca con contexto de búsqueda. Generación de seguimiento automatizada.

Obtener clave API gratuitaLeer la documentacion
ScavioScavio

API de busqueda en tiempo real para agentes de IA. Busca en todas las plataformas, no solo en Google.

Producto

  • Funciones
  • Precios
  • Panel
  • Afiliados

Desarrolladores

  • Documentacion
  • Referencia de API
  • Inicio rapido
  • Integracion MCP
  • Python SDK

Alternativas

  • Alternativa a Tavily
  • Alternativa a SerpAPI
  • Alternativa a Firecrawl
  • Alternativa a Exa

Herramientas

  • Formateador JSON
  • cURL a codigo
  • Contador de tokens
  • Todas las herramientas

© 2026 Scavio. Todos los derechos reservados.

Featured on TAAFT
Terminos de servicioPolitica de privacidad