personal-meeting
Mi propio MCP basado en un proyecto de generación de actas de reunión
Paquete MCP local educativo que consulta notas de reunión no estructuradas, crea un prompt para redactar actas, valida el borrador y lo guarda tras la aprobación del usuario.
Los nombres de empresas, personas, fechas, incidencias, cifras y declaraciones de este paquete son datos sintéticos creados con fines educativos.
Objetivos educativos
Al finalizar la práctica, el alumno podrá:
Explicar los roles de Host, Server y Tool en MCP.
Ejecutar un servidor MCP STDIO local con Python.
Implementar y modificar una Tool que lea datos no estructurados.
Diseñar una Tool de escritura con límites de validación y aprobación.
Personalizar el MCP con su propio formato de actas de reunión.
Conectar el servidor a Codex o Claude Desktop y demostrar su funcionamiento.
Diseñar descripciones de herramientas, esquemas, respuestas y errores desde la perspectiva de la ingeniería de arneses (harness engineering).
Related MCP server: Guarded MCP Agent
Contenido incluido
3 notas de reunión sintéticas no estructuradas por nivel de dificultad
Servidor
FastMCPfuncional: 11 herramientas, 3 recursos, 1 promptPlantilla estándar de actas de reunión
Guardado basado en token de aprobación y detección de sobrescritura
Verificador de contraste con el texto original (grounding)
5 guías de práctica para el alumno
1 ejemplo de solución para el instructor
Pruebas unitarias de dominio, grounding y convenciones de arnés, además de pruebas de humo STDIO
Inicio rápido
Entorno requerido: Python 3.11 o superior, uv
uv sync --extra dev
uv run pytest -q
uv run python scripts/smoke_stdio.pyPara usar MCP Inspector, ejecute lo siguiente:
uv run mcp dev src/meeting_mcp/server.pyHerramientas proporcionadas
El flujo recomendado sigue el orden siguiente, y el campo next_actions de cada respuesta indica el siguiente paso.
DISCOVER → READ → GROUND → DRAFT → CHECK → PREVIEW → [사용자 승인] → SAVEDEtapa | Tool | Lectura/escritura | Función |
DISCOVER |
| lectura | Consulta las 3 notas sintéticas |
READ |
| lectura | Consulta el texto original. Admite rango de líneas y ancla de cita |
GROUND |
| lectura | Extrae candidatos a decisión, fechas y expresiones no confirmadas con número de línea |
DRAFT |
| lectura | Combina la plantilla y el texto original |
CHECK |
| lectura | Validación estructural. Proporciona |
CHECK |
| lectura | Contrasta si personas, fechas y cifras existen en el texto original (asesoramiento, no bloquea el guardado) |
PREVIEW |
| lectura | Comprueba la diferencia con la versión guardada existente |
PREVIEW |
| lectura | Muestra validación, grounding y diff juntos y emite el token de aprobación |
SAVED |
| escritura | Guarda solo si el token de aprobación coincide (única herramienta de escritura) |
OBSERVE |
| lectura | Lista de actas guardadas |
OBSERVE |
| lectura | Consulta el registro de auditoría de guardado |
Recursos y prompts
Tipo | URI o nombre | Función |
Resource |
| Texto original de la nota de reunión |
Resource |
| Plantilla estándar de actas |
Resource |
| Acta guardada |
Prompt |
| Flujo de redacción de actas que incluye el límite de aprobación |
Diseño del arnés
Este servidor considera como objeto de diseño no solo la funcionalidad, sino también la forma en que el modelo utiliza las herramientas. Los detalles se encuentran en la Práctica 5.
Todas las respuestas incluyen
stageynext_actions, de modo que el modelo elige la siguiente herramienta con solo ver la respuesta.Los errores devuelven el código de causa, el método de recuperación y los valores seleccionables.
El esquema de argumentos se mantiene plano (
{"note_id": "..."}). Si se usa un modelo Pydantic como tipo de argumento, se anida como{"params": {...}}y cambia la forma de la llamada.El valor de retorno es un modelo Pydantic, por lo que
outputSchemase genera automáticamente.Solo las comprobaciones definitivas (estructurales) bloquean el guardado; las comprobaciones heurísticas (grounding) solo se notifican como advertencia.
Todas las herramientas llevan
readOnlyHint/destructiveHintpara distinguir las herramientas de escritura.
Conexión con Codex
Ejecute el siguiente comando en la raíz del paquete.
codex mcp add personal-meeting -- uv --directory "$PWD" run python src/meeting_mcp/server.py
codex mcp listEn la aplicación Codex también se puede añadir como servidor STDIO en Settings → MCP servers → Add server. Según la documentación oficial de OpenAI, la aplicación Codex, la CLI y la extensión del IDE comparten la configuración MCP del mismo host.
Conexión con Claude Desktop
Reemplace ABSOLUTE_PROJECT_PATH en config/claude_desktop_config.example.json por la ruta absoluta de esta carpeta y aplíquelo en la configuración de Claude Desktop. Debe cerrar la aplicación por completo y volver a abrirla.
Prompts recomendados para la práctica
personal-meeting MCP에서 사용 가능한 더미 회의 메모를 보여주세요.training_design 메모를 읽고, 제공된 회의록 템플릿에 맞춰 초안을 작성하세요.
원문에 없는 담당자와 기한은 추정하지 마세요.incident_review 메모에서 extract_note_facts로 ambiguity_flags를 먼저 확인하고,
확정되지 않은 항목은 전부 '미정'으로 남긴 회의록을 작성하세요.작성한 회의록을 validate_minutes_draft와 check_minutes_grounding으로 검증하고,
통과하면 preview_save_minutes까지만 실행하세요. 저장은 아직 하지 마세요.Orden de la formación
Comandos de verificación
uv run pytest -q
uv run python scripts/smoke_stdio.py
uv run python scripts/validate_package.pyPrincipios de diseño
MCP no realiza llamadas a APIs de LLM independientes.
Codex o Claude se encargan de resumir; MCP se encarga de los datos, la validación y el guardado.
No se genera información no confirmada en el texto original; el verificador de grounding la contrasta mecánicamente.
El guardado final requiere tanto el token de aprobación emitido en la vista previa como la aprobación explícita del usuario.
El token de aprobación es un hash de (note_id, contenido), por lo que el contenido aprobado y el guardado no pueden diferir.
Se separa la lógica de dominio (
core,grounding) de las convenciones de herramientas (server,harness).En la formación real no se utilizan datos de clientes, empleados ni contratos.
Referencias
Repositorio de referencia base: https://github.com/kyopark2014/mcp
Documentación oficial de Codex MCP: https://developers.openai.com/codex/mcp
SDK de Python de MCP: https://github.com/modelcontextprotocol/python-sdk
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables efficient analysis of recorded meetings by transcribing audio, extracting only non-people frames (e.g., slides), and associating them with timestamps for compact LLM input.MIT
- FlicenseNot gradedqualityCmaintenanceEnables note management (create, read, update, delete) with a policy engine for blocking tools, human approval, and prompt injection detection.
- FlicenseDqualityCmaintenanceEnables extracting action items from meeting transcripts and managing them in Notion, with duplicate detection and human review.3
- FlicenseAqualityBmaintenanceTranscribes meeting recordings with speaker diarization and automatic speaker identification, leveraging project context to generate minutes. Supports various ASR engines and offers privacy-preserving local processing.14
Related MCP Connectors
Certified SEC EDGAR fact memory for AI agents with zero hallucination and filing provenance.
Shared, permission-aware company context for AI agents, with provenance, approvals and audit.
Search recordings, summarize meetings, create clips, and automate workflows from your AI assistant.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/saewookkangboy/personal-meeting-mcp-training'
If you have feedback or need assistance with the MCP directory API, please join our Discord server