personal-meeting
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@personal-meetinglist available dummy meeting notes"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
My Own MCP Based on a Meeting Minutes Generation Project
An educational local MCP package that reads unstructured meeting notes, builds meeting minutes writing prompts, validates drafts, and saves them after user approval.
The company names, person names, schedules, incidents, figures, and statements in this package are all synthetic data created for educational purposes.
Learning Objectives
After completing the lab, trainees will be able to:
Explain the roles of MCP Host, Server, and Tool.
Run a local STDIO MCP server with Python.
Implement and modify a Tool that reads unstructured data.
Design a write Tool with validation and approval boundaries.
Customize the MCP to their own meeting minutes format.
Connect the server to Codex or Claude Desktop and demonstrate its behavior.
Design tool descriptions, schemas, responses, and errors from a harness engineering perspective.
Related MCP server: Guarded MCP Agent
What's Included
3 synthetic unstructured meeting notes by difficulty level
A working
FastMCPserver: 11 tools, 3 resources, 1 promptA standard meeting minutes template
Approval-token-based saving and overwrite detection
A grounding checker that cross-references the source text
5 trainee lab workbooks
1 instructor answer example
Unit tests for domain, grounding, and harness conventions, plus an STDIO smoke test
Quick Start
Required environment: Python 3.11 or later, uv
uv sync --extra dev
uv run pytest -q
uv run python scripts/smoke_stdio.pyTo use MCP Inspector, run the following:
uv run mcp dev src/meeting_mcp/server.pyProvided Tools
The recommended flow is in the order below, and the next_actions field in every response tells you the next step.
DISCOVER → READ → GROUND → DRAFT → CHECK → PREVIEW → [사용자 승인] → SAVEDStep | Tool | Read/Write | Role |
DISCOVER |
| Read | View 3 synthetic notes |
READ |
| Read | View the source text. Supports line range specification and |
GROUND |
| Read | Extract decision candidates, dates, and unconfirmed expressions with line numbers |
DRAFT |
| Read | Combine the template with the source text |
CHECK |
| Read | Structural validation. Provides |
CHECK |
| Read | Cross-check that people, dates, and figures exist in the source text (advisory, does not block saving) |
PREVIEW |
| Read | Check the difference from the existing saved version |
PREVIEW |
| Read | Shows validation, grounding, and diff together and issues an approval token |
SAVED |
| Write | Saves only when the approval token matches (the only write tool) |
OBSERVE |
| Read | List of saved meeting minutes |
OBSERVE |
| Read | View the save audit log |
Resources and Prompts
Type | URI or Name | Role |
Resource |
| Meeting note source text |
Resource |
| Standard meeting minutes template |
Resource |
| Saved meeting minutes |
Prompt |
| Meeting minutes writing workflow including the approval boundary |
Harness Design
This server treats not only functionality but also the way the model uses tools as a design target. See Lab 5 for details.
Every response includes
stageandnext_actions, so the model can choose the next tool from the response alone.Errors return a cause code, recovery method, and selectable values together.
Argument schemas are kept flat (
{"note_id": "..."}). Using a Pydantic model as an argument type nests them as{"params": {...}}and changes the call shape.Return values are Pydantic models, so
outputSchemais generated automatically.Only definitive checks (structure) block saving; heuristic checks (grounding) are reported as warnings only.
Every tool has
readOnlyHint/destructiveHintto distinguish write tools.
Codex Connection
Run the following command from the package root:
codex mcp add personal-meeting -- uv --directory "$PWD" run python src/meeting_mcp/server.py
codex mcp listIn the Codex app, you can also add it as an STDIO server under Settings → MCP servers → Add server. Per OpenAI's official documentation, the Codex app, CLI, and IDE extension share MCP settings on the same host.
Claude Desktop Connection
Replace ABSOLUTE_PROJECT_PATH in config/claude_desktop_config.example.json with the absolute path to this folder, then apply it to the Claude Desktop settings. You must fully quit the app and relaunch it.
Recommended Lab Prompts
personal-meeting MCP에서 사용 가능한 더미 회의 메모를 보여주세요.training_design 메모를 읽고, 제공된 회의록 템플릿에 맞춰 초안을 작성하세요.
원문에 없는 담당자와 기한은 추정하지 마세요.incident_review 메모에서 extract_note_facts로 ambiguity_flags를 먼저 확인하고,
확정되지 않은 항목은 전부 '미정'으로 남긴 회의록을 작성하세요.작성한 회의록을 validate_minutes_draft와 check_minutes_grounding으로 검증하고,
통과하면 preview_save_minutes까지만 실행하세요. 저장은 아직 하지 마세요.Training Sequence
Verification Commands
uv run pytest -q
uv run python scripts/smoke_stdio.py
uv run python scripts/validate_package.pyDesign Principles
MCP does not call a separate LLM API.
Codex or Claude handles summarization, and MCP handles data, validation, and storage.
Information not confirmed in the source text is not generated, and the grounding checker mechanically cross-references it.
Final saving requires both the approval token issued in the preview and explicit user approval.
The approval token is a hash of (note_id, body), so the approved content and the saved content cannot diverge.
Domain logic (
core,grounding) is separated from tool conventions (server,harness).Real training does not use customer, employee, or contract-related data.
References
Base reference repository: https://github.com/kyopark2014/mcp
Codex MCP official documentation: https://developers.openai.com/codex/mcp
MCP Python SDK: 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