# sanketh91/dailypost-mcp-t1 architecture

> Architecture diagram of the GitHub repository sanketh91/dailypost-mcp-t1, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-29). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/sanketh91/dailypost-mcp-t1
- Repository: https://github.com/sanketh91/dailypost-mcp-t1

## Overview

This repository provides a FastMCP interface for searching and managing DailyPost content in Weaviate, including post, topic, date, keyword, hybrid, and chunk search, plus post insertion and style-guide access. The main workflow is an MCP client request entering the server, dispatching to registered tools, querying or updating Weaviate, and returning structured results. A separate dynamic-tool workflow analyzes requests, generates handlers, and registers them with disk persistence. Source excerpts are partial; links show only wiring evidenced by the supplied files.

Main entry points: [`tool.py`](https://github.com/sanketh91/dailypost-mcp-t1/blob/main/tool.py) (Registered Tools), [`dynamic_tool_registry.py`](https://github.com/sanketh91/dailypost-mcp-t1/blob/main/dynamic_tool_registry.py) (Dynamic Registry), [`mcp_server.py`](https://github.com/sanketh91/dailypost-mcp-t1/blob/main/mcp_server.py) (MCP Server), [`dynamic_tools_framework.py`](https://github.com/sanketh91/dailypost-mcp-t1/blob/main/dynamic_tools_framework.py) (Tool Generator)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_server["MCP Server"]
  node_server["MCP Server<br/>[mcp_server.py]"]
end

subgraph group_content["Content Tools"]
  node_tools["Registered Tools<br/>[tool.py]"]
  node_search["Content Search<br/>[tool.py]"]
  node_chunk["Chunk Search<br/>[tool.py]"]
  node_write["Post Insertion<br/>[tool.py]"]
  node_style["Style Guide<br/>[tool.py]"]
end

subgraph group_dynamic["Dynamic Tools"]
  node_framework["Tool Generator"]
  node_registry["Dynamic Registry"]
  node_toolstore[("Persisted Tool Store")]
end

subgraph group_data["Data Services"]
  node_embed["Embedding Manager<br/>[tool.py]"]
  node_cache["Embedding Cache<br/>[tool.py]"]
  node_weaviate[("Weaviate")]
end

node_client(("MCP Client"))

node_client -->|"sends requests"| node_server
node_server -->|"registers tools"| node_tools
node_client -->|"invokes tools"| node_server
node_tools -->|"dispatches searches"| node_search
node_tools -->|"dispatches searches"| node_chunk
node_tools -->|"dispatches writes"| node_write
node_tools -->|"dispatches guide"| node_style
node_search -->|"queries"| node_weaviate
node_chunk -->|"creates vectors"| node_embed
node_embed -->|"checks cache"| node_cache
node_chunk -->|"queries"| node_weaviate
node_write -->|"creates vectors"| node_embed
node_write -->|"writes posts"| node_weaviate
node_framework -->|"registers tools"| node_registry
node_registry -->|"persists tools"| node_toolstore
node_registry -->|"recreates handlers"| node_framework

click node_server "https://github.com/sanketh91/dailypost-mcp-t1/blob/main/mcp_server.py"
click node_tools "https://github.com/sanketh91/dailypost-mcp-t1/blob/main/tool.py"
click node_search "https://github.com/sanketh91/dailypost-mcp-t1/blob/main/tool.py"
click node_chunk "https://github.com/sanketh91/dailypost-mcp-t1/blob/main/tool.py"
click node_write "https://github.com/sanketh91/dailypost-mcp-t1/blob/main/tool.py"
click node_style "https://github.com/sanketh91/dailypost-mcp-t1/blob/main/tool.py"
click node_embed "https://github.com/sanketh91/dailypost-mcp-t1/blob/main/tool.py"
click node_cache "https://github.com/sanketh91/dailypost-mcp-t1/blob/main/tool.py"
click node_framework "https://github.com/sanketh91/dailypost-mcp-t1/blob/main/dynamic_tools_framework.py"
click node_registry "https://github.com/sanketh91/dailypost-mcp-t1/blob/main/dynamic_tool_registry.py"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_server,node_client toneBlue
class node_tools,node_search,node_chunk,node_write,node_style toneAmber
class node_framework,node_registry,node_toolstore toneMint
class node_embed,node_cache,node_weaviate toneRose
```

## Components

### MCP Server

- [MCP Server](https://github.com/sanketh91/dailypost-mcp-t1/blob/main/mcp_server.py): `mcp_server.py`

### Content Tools

- [Registered Tools](https://github.com/sanketh91/dailypost-mcp-t1/blob/main/tool.py): `tool.py`
- [Content Search](https://github.com/sanketh91/dailypost-mcp-t1/blob/main/tool.py): `tool.py`
- [Chunk Search](https://github.com/sanketh91/dailypost-mcp-t1/blob/main/tool.py): `tool.py`
- [Post Insertion](https://github.com/sanketh91/dailypost-mcp-t1/blob/main/tool.py): `tool.py`
- [Style Guide](https://github.com/sanketh91/dailypost-mcp-t1/blob/main/tool.py): `tool.py`

### Dynamic Tools

- [Tool Generator](https://github.com/sanketh91/dailypost-mcp-t1/blob/main/dynamic_tools_framework.py): `dynamic_tools_framework.py`
- [Dynamic Registry](https://github.com/sanketh91/dailypost-mcp-t1/blob/main/dynamic_tool_registry.py): `dynamic_tool_registry.py`
- **Persisted Tool Store**

### Data Services

- [Embedding Manager](https://github.com/sanketh91/dailypost-mcp-t1/blob/main/tool.py): `tool.py`
- [Embedding Cache](https://github.com/sanketh91/dailypost-mcp-t1/blob/main/tool.py): `tool.py`
- **Weaviate**

### Other components

- **MCP Client**

## Connections

- MCP Client → MCP Server: sends requests
- MCP Server → Registered Tools: registers tools
- MCP Client → MCP Server: invokes tools
- Registered Tools → Content Search: dispatches searches
- Registered Tools → Chunk Search: dispatches searches
- Registered Tools → Post Insertion: dispatches writes
- Registered Tools → Style Guide: dispatches guide
- Content Search → Weaviate: queries
- Chunk Search → Embedding Manager: creates vectors
- Embedding Manager → Embedding Cache: checks cache
- Chunk Search → Weaviate: queries
- Post Insertion → Embedding Manager: creates vectors
- Post Insertion → Weaviate: writes posts
- Tool Generator → Dynamic Registry: registers tools
- Dynamic Registry → Persisted Tool Store: persists tools
- Dynamic Registry → Tool Generator: recreates handlers
