Skip to main content
Glama

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:

  1. Explain the roles of MCP Host, Server, and Tool.

  2. Run a local STDIO MCP server with Python.

  3. Implement and modify a Tool that reads unstructured data.

  4. Design a write Tool with validation and approval boundaries.

  5. Customize the MCP to their own meeting minutes format.

  6. Connect the server to Codex or Claude Desktop and demonstrate its behavior.

  7. 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 FastMCP server: 11 tools, 3 resources, 1 prompt

  • A 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.py

To use MCP Inspector, run the following:

uv run mcp dev src/meeting_mcp/server.py

Provided 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 → [사용자 승인] → SAVED

Step

Tool

Read/Write

Role

DISCOVER

list_dummy_notes

Read

View 3 synthetic notes

READ

read_meeting_note

Read

View the source text. Supports line range specification and L14 citation anchors

GROUND

extract_note_facts

Read

Extract decision candidates, dates, and unconfirmed expressions with line numbers

DRAFT

build_minutes_prompt

Read

Combine the template with the source text

CHECK

validate_minutes_draft

Read

Structural validation. Provides rule_id·severity·line·fix (save gate)

CHECK

check_minutes_grounding

Read

Cross-check that people, dates, and figures exist in the source text (advisory, does not block saving)

PREVIEW

diff_minutes_against_saved

Read

Check the difference from the existing saved version

PREVIEW

preview_save_minutes

Read

Shows validation, grounding, and diff together and issues an approval token

SAVED

save_approved_minutes

Write

Saves only when the approval token matches (the only write tool)

OBSERVE

list_saved_minutes

Read

List of saved meeting minutes

OBSERVE

read_minutes_audit_log

Read

View the save audit log

Resources and Prompts

Type

URI or Name

Role

Resource

note://{note_id}

Meeting note source text

Resource

template://minutes

Standard meeting minutes template

Resource

minutes://{note_id}

Saved meeting minutes

Prompt

write_minutes

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 stage and next_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 outputSchema is generated automatically.

  • Only definitive checks (structure) block saving; heuristic checks (grounding) are reported as warnings only.

  • Every tool has readOnlyHint / destructiveHint to 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 list

In 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.

personal-meeting MCP에서 사용 가능한 더미 회의 메모를 보여주세요.
training_design 메모를 읽고, 제공된 회의록 템플릿에 맞춰 초안을 작성하세요.
원문에 없는 담당자와 기한은 추정하지 마세요.
incident_review 메모에서 extract_note_facts로 ambiguity_flags를 먼저 확인하고,
확정되지 않은 항목은 전부 '미정'으로 남긴 회의록을 작성하세요.
작성한 회의록을 validate_minutes_draft와 check_minutes_grounding으로 검증하고,
통과하면 preview_save_minutes까지만 실행하세요. 저장은 아직 하지 마세요.

Training Sequence

  1. START_HERE.md

  2. Lab 1: Data and Tools

  3. Lab 2: Meeting Minutes Prompt

  4. Lab 3: Validation and Approval

  5. Lab 4: Client Connection

  6. Lab 5: Harness Engineering

Verification Commands

uv run pytest -q
uv run python scripts/smoke_stdio.py
uv run python scripts/validate_package.py

Design 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

Install Server
A
license - permissive license
A
quality
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

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

View all related MCP servers

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.

View all MCP Connectors

Latest Blog Posts

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