senegal-mohebs-tlm-server
This server is an MCP tool providing a shared memory and coordination layer for AI-generated Senegalese MOHEBS teaching materials, ensuring consistency and variety across documents.
Context Management: Select and retrieve the active grade/subject (e.g.,
ci/maths) to scope operations.Curriculum Access: List top-level units and fetch detailed curriculum slices including lessons and progression.
Terminology & Prompts: Search a French/Wolof glossary, browse terminology sections, and retrieve generation prompts for specific deliverables.
Generation Support: Load full context (curriculum, characters, example domains) and get unused domain suggestions to rotate example object families across chapters.
Document Lifecycle: Generate signed upload/download URLs for
.docxfiles, extract text, list tracked documents, reconcile bucket vs. history, and log/record generated content (write operations require user confirmation).Knowledge Graph Management: Seed and manage KG versions with draft/publish workflow, apply mutations with audit log, and enforce role‑based access (curator/approver) via Supabase JWT. A
get_capabilitiestool reports available actions per role.Confirmation Gating: All destructive or write operations prompt for explicit user confirmation before execution.
Provides integration with Firebase Storage for storing and retrieving generated documents, history, and other data, using a service account for authentication and signing URLs.
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., "@senegal-mohebs-tlm-serverset context to CI maths"
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.
senegal-mohebs-tlm-server
An MCP server that gives the Senegalese MOHEBS teaching-materials pipeline a shared memory layer — so AI-generated documents stay consistent (characters, terminology, concept coverage) and deliberately varied (rotating example domains: fruits → legumes → …), across any grade and subject.
It works on one grade + subject at a time (e.g. ci / maths); you pick the pair with set_context. Sources (knowledge graph, terminology, prompts) are local, read-only inputs you edit in place. Generated .docx files and their history live in Firebase Storage (the shared source of truth, so the generating agent, the server, and you never need a shared disk). Curriculum data can additionally live in a Firestore node/edge store with a draft → review → publish curator loop. Auth is a Supabase JWT.
Going deeper: the full operational manual is
docs/technical-reference.md; the architecture summary + working conventions are inCLAUDE.md; the production runbook isDEPLOY.md.
What lives where
Thing | Location |
Knowledge graph, terminology, the two prompts | Local |
Generated | Firebase Storage |
Curriculum node/edge store (optional) | Firestore ( |
Object hashing uses the GCS object md5 from metadata — the server never hashes a local file, which removes the cross-host mismatch that used to break log_generation.
Related MCP server: myBrAIn
Sources layout
Each grade/subject folder holds the same canonical filenames:
sources/ci/maths/
knowledge_graph.json # { nodes, relationships } — converged LC metadata scheme
terminology.json
PROMPT_generate_chapter.md
PROMPT_generate_lessons.md
example_domains.json # optional; falls back to a built-in poolget_context discovers installed pairs by scanning the tree. Dropping in a folder provides the data; making the tools work also needs a registered adapter (src/adapters/, one behavior module per subject) — a folder with no adapter is rejected by set_context. See Adding a grade/subject.
Quickstart
npm install
npm run build # check-cycles (layering) + tsc → dist/
npm test # vitest
npm start # stdio MCP server (dist/index.js)
npm run start:http # HTTP MCP server (dist/http.js) — remote / Cloud RunRequired env: SERVICE_ACCOUNT_KEY_PATH (Firebase service-account JSON) · FIREBASE_STORAGE_BUCKET.
Common optional env: TLM_GRADE / TLM_SUBJECT (pre-select a pair at startup) · TLM_BUCKET_PREFIX (namespace everything under a prefix) · TLM_SOURCES_DIR · KG_SOURCE (bundle default | firestore) · TLM_DOMAIN_NEIGHBORHOOD_K. Full list and semantics: technical reference → Configuration.
Firestore KG store + curator loop (optional)
Curriculum + KG data can live in a generic Firestore node/edge store with a double-buffered draft/published model and a curator/approver edit → review → publish loop (wording edits via upsert_property, structural changes via composite recipes add_lesson/add_chapter/move_lesson/split_chapter/renumber, all two-phase-confirmed and audited). Seed and verify:
KG_SOURCE=firestore npm run seed:kg-store # seed Firestore from sources/
KG_SOURCE=firestore npm run parity:kg-store # assert firestore reads == bundle readsFull lifecycle, roles, recipes, integrity rules, and audit: technical reference → KG node/edge store.
The generation flow (in brief)
set_context(grade, subject)— pick what you're working on.get_generation_context(unit, deliverable)— curriculum slice, established characters, terminology, coverage, fresh example-domain suggestion.Generate the
.docx.create_upload_url(relPath)→PUTthe file to the signed URL (no large payloads through MCP).log_generation(unit, deliverable, relPath, content)— records what you produced (md5 read from storage).
The outward-writing tools (create_upload_url, log_generation, record_document_content) are gated by a confirmation step. Details, preview generation, ingestion, and reconciliation: technical reference.
Tools
Context:
set_context,get_context.Subject-agnostic:
get_terminology,terminology_sections,get_prompt,reconcile,list_documents,create_upload_url,create_download_url,get_document_text,get_capabilities.Curator loop (role-gated):
diff_draft,upsert_property,create_node/link_nodes/unlink_nodes/delete_node,add_lesson/add_chapter/move_lesson/split_chapter/renumber,publish_draft,discard_draft,read_audit.Subject-shaped payloads:
list_units,get_curriculum,get_generation_context,record_document_content,log_generation,preview_generation,create_preview_upload_url, and (CI maths only)suggest_fresh_domain,domain_usage.
Documentation
CLAUDE.md— architecture summary, module layering, conventions (the working guide).docs/technical-reference.md— the full operational manual: KG store & curator loop, integrity/audit, the read-only KG explorer, buckets, generation/preview flow, deployment & hosting.DEPLOY.md— production deployment runbook.Design notes (
docs/design-notes/— the why behind each subsystem): multi-subject architecture · KG mutations framework · preview generation · KG explorer findings · read-audit findings.
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
- Alicense-qualityCmaintenanceA production-ready MCP server that enables multiple AI agents to collaborate through a shared, concurrency-safe memory space. It supports advanced search, full CRUD operations, and automatic backups to facilitate asynchronous communication between agents.MIT
- Alicense-qualityDmaintenanceMCP server that provides persistent memory and contextual awareness to language models, enabling project onboarding, recall of architectural rules, and code consistency across sessions.32MIT
- Flicense-qualityDmaintenanceMCP server that dynamically extracts and manages user memory from LLM conversations, enabling consistent personalization across different models.7
- Alicense-qualityDmaintenanceA portable MCP server providing a shared intelligent memory system for any MCP-compatible AI tool, enabling storage, retrieval, extraction, and governance of memories across sessions.34MIT
Related MCP Connectors
Cloud-hosted MCP server for durable AI memory
Persistent memory and cross-session learning for AI coding assistants (hosted remote MCP).
Shared, governed long-term memory for AI agents across tools and sessions via MCP and REST.
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/IDinsight/senegal-mohebs-tlm-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server