Tasks
1. Learn MCP and FastMCP in-depth
2. Build a working prototype that Claude Desktop can use -> for practical learning
3. Explore the production architecture for BriefingSource (authentication,
authorization, deployment, Laravel integration, AI server) -> Actual Goal
Overall Roadmap
Phase 1
● Understand MCP
● Understand FastMCP
● Build local tools
● Test using MCP Inspector
● Test using Claude Desktop
Phase 2
● Build realistic BriefingSource tools
● Search Speakers
● Speaker Availability
● Room Availability
● Briefing Summary etc.
Phase 3
● Production Architecture:
● Authentication
● Authorization
● Laravel Integration
● AI Server
● Deployment
● Scaling
● Security
Learning Plan
Module 1 — MCP Fundamentals
Goal:
Understand exactly what MCP is.
Topics:
● Why MCP exists
● MCP Architecture
● MCP Client
● MCP Server
● Transport (stdio vs HTTP/SSE)
● Tools
● Resources
● Prompts
● Sampling
● JSON-RPC
● Lifecycle
Module 2 — FastMCP Basics
Goal:
Learn the FastMCP Python library.
For practice, build a Hello MCP Server with following components:
Tools:
● hello()
● add()
● multiply()
● current_time()
Resources:
● company_info
● version
Prompt:
● write_email
Module 3 — Claude Desktop Integration
Goal:
Expose your server.
Learn the following workflow:
Claude Desktop
starts
MCP Server
Tool Discovery
Tool Calling
Response
We'll inspect every JSON request and response.
Module 4 — Advanced FastMCP
Explore:
Context
Dependencies
State
Async tools
Error handling
Logging
Middleware
Lifespan
Sessions
Authentication hooks
Custom transports
Module 5 — Build a Mini BriefingSource MCP
Instead of sample examples we'll build tools like:
search_speakers()
speaker_availability()
meeting_rooms()
briefing_summary()
attendee_summary()
center_information()
reports()
Initially these tools can return mocked data.
Later they'll call APIs.
Module 6 — Connect to Existing AI Services
Instead of
return fake_data
we'll connect
FastMCP Tool
Python Service
Laravel API
Database
or
FastMCP Tool
Existing AI pipeline
LLM
Return
Exactly how your production system would work.
Module 7 — Authentication
Explore multiple designs and approaches.
Option A
Client authenticates directly.
Claude
MCP Server
JWT/API Key
BriefingSource
Simple.
But AI server becomes public.
Exactly the issue Hammad mentioned.
Option B
Laravel Proxy
Claude
BriefingSource (Laravel)
Authentication
Forward
Python MCP Server
This matches the current thinking.
Advantages
● Existing login
● Existing permissions
● Existing RBAC
● Existing audit logs
● AI server stays private
Likely the strongest approach.
Option C
Integration Tokens
Admin
Generate MCP Token
Claude Desktop
MCP Server
Token Verification
Similar to GitHub Personal Access Tokens.
Useful for third-party integrations.
Option D
OAuth
Claude
↓
OAuth Login
BriefingSource
Access Token
MCP Server
Potential future option if external integrations expand.
We'll compare:
● complexity
● security
● scalability
● user experience
● enterprise readiness
Module 8 — Authorization
Authorization answers What can you do?
Example
Tool: Search Speaker -> Allowed
Tool: Admin Reports -> Denied
Tool: Internal Notes -> Denied
We'll design permission-aware MCP tools.
Module 9 — Production Deployment
Topics:
Docker
HTTPS
Reverse Proxy
Logging
Observability
Monitoring
Rate Limiting
Secrets
Scaling
Versioning
Tool Discovery
Health Checks
Module 10 — Final BriefingSource Architecture
We'll produce diagrams like
Claude Desktop
Laravel
Authentication
Authorization
Internal FastMCP Server
↓
Existing AI Services
Database
and
FastMCP Tool
Business Layer
Laravel APIs
Speaker Service
Elastic
OpenAI
Return
This can become an internal design document.
Deliverables We'll Produce
By the end you'll have:
● A solid understanding of the MCP specification and FastMCP.
● A working FastMCP server with multiple tools.
● Claude Desktop successfully calling those tools.
● Mock and API-backed BriefingSource tools.
● A proposed authentication and authorization architecture aligned with your
team's Laravel-first direction.
● A production-ready architecture document that can support implementation
discussions.
How We'll Work
I recommend treating this like a guided R&D project rather than isolated questions.
For each module, we'll follow the same structure:
1. Explain the underlying concepts.
2. Build a minimal working example.
3. Test it.
4. Relate it to BriefingSource.
5. Discuss production considerations and common pitfalls.