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 de aprendizaje
Al finalizar la práctica, el alumno será capaz de:
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: Local Knowledge Desk
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 cuadernos de prácticas para el alumno
1 ejemplo de solución para el instructor
Pruebas unitarias de dominio, grounding y protocolo de arneses, además de una prueba 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 de las 3 notas sintéticas |
READ |
| Lectura | Consulta del texto original. Admite rango de líneas y anclas 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 están en el texto original (consultivo, 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 del 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 |
| Actas guardadas |
Prompt |
| Flujo de redacción de actas que incluye el límite de aprobación |
Diseño del arnés
Este servidor no solo considera la funcionalidad, sino también la forma en que el modelo utiliza las herramientas como objeto de diseño. 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 concluyentes (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
Desde la raíz del paquete, ejecute el siguiente comando:
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
Sustituya 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 ninguna API LLM independiente.
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) del protocolo 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
- AlicenseBqualityAmaintenanceAn MCP server for reading, editing, and validating Microsoft Word documents with specialized support for track changes, comments, and footnotes. It enables structural auditing, heading extraction, and precise OOXML-level document manipulation through natural language tools.10042MIT
- FlicenseAqualityBmaintenanceA local MCP server for managing Markdown notes, enabling create, list, read, search, summarize, and delete operations through natural language.61
- FlicenseNot gradedqualityCmaintenanceProvides lightweight documentation review tools including issue detection, readability scoring, style checking, and document summarization for integration with MCP-compatible clients.
- AlicenseNot gradedqualityCmaintenanceRead-only MCP server for searching and retrieving LogicNotes meeting notes, including summaries, transcripts, and action items.MIT
Related MCP Connectors
MCP server for generating rough-draft project plans from natural-language prompts.
Markdown-based note-taking with a hosted MCP server. Your notes serve you and your AI.
MCP-native collaborative markdown editor with real-time AI document editing
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/minsik102/fileanalyzer_mcp_testmode'
If you have feedback or need assistance with the MCP directory API, please join our Discord server