Skip to main content
Glama
jacobNar

microsoft-office-mcp

by jacobNar

Create PowerPoint Presentation with ERD from Text Prompt

This project uses LangChain's MultiServerMCPClient to connect to a custom MCP server (Microsoft Office/Visio MCP) and generate a PowerPoint presentation containing an ERD (Entity-Relationship Diagram) visualization.

Prerequisites

  • Python 3.8+

  • Microsoft Office (PowerPoint/Visio) installed

  • MCP Server running with Visio/PowerPoint tools

Related MCP server: Generative-UI-MCP

Installation

  1. Clone the repository:

    git clone <repository-url>
    cd microsoft-office-mcp
  2. Install dependencies:

    pip install -r requirements.txt

Usage

Start MCP Server

Run the MCP server that exposes Visio/PowerPoint tools:

python server.py

Run the Agent

Execute the agent script with a prompt describing the desired ERD:

python agent.py

Modify the main() function in agent.py to customize the prompt:

async def main():
    agent = ERDAgent()
    prompt = """
    Create a PowerPoint presentation with an ERD diagram for this scenario:
    
    [Your ERD description here]
    
    Key requirements:
    - Use Crow's Foot notation for relationships
    - Keep entities within slide boundaries
    - Save as vsdx file
    """
    await agent.run(prompt)

How It Works

  1. server.py: Implements a FastMCP server that exposes:

    • init_new_visio_document: Creates a new Visio/PowerPoint document

    • draw_erd_entity: Draws ERD entity shapes with specified coordinates

    • connect_entities: Creates relationship connectors between entities

    • save_as_vsdx: Saves the diagram as a .vsdx file

  2. agent.py: A LangGraph agent that:

    • Connects to the MCP server using MultiServerMCPClient

    • Uses create_react_agent with Ollama (or another LLM) for reasoning

    • Executes the MCP tools sequentially to build the diagram

    • Streams the agent's thought process to the console

Customization

  • LLM Model: Change OLLAMA_MODEL in .env or config.py

  • MCP Server URL: Update MCP_SERVER_URL in .env

  • Diagram Design: Modify the prompt in agent.py to change:

    • Entities and attributes

    • Relationships and cardinality

    • Document layout and styling

Example Prompt

"""
Design a simple ERD diagram for a gym membership system.

Entities:
- MEMBERS (member_id, name, email, phone, address)
- CLASSES (class_id, name, capacity, instructor)
- MEMBERSHIPS (membership_id, type, start_date, end_date)

Relationships:
- A MEMBER can have one MEMBERSHIP (1:1)
- A MEMBER can attend multiple CLASSES (M:N)
- A CLASS has one instructor (1:1)

Requirements:
- Use Crow's Foot notation
- Keep the diagram clean and organized
- Save as vsdx file with appropriate filename
"""
A
license - permissive license
-
quality - not tested
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.

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/jacobNar/microsoft-office-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server