# ajay-fitbit/mcp architecture

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

- Interactive diagram: https://gitdiagram.com/ajay-fitbit/mcp
- Repository: https://github.com/ajay-fitbit/mcp

## Overview

This repository provides an MCP interface for AI assistants to inspect and operate on SQL Server, with OpenAI and Python client options. The principal workflow is an assistant request routed through a client to the MCP server, which performs database connection, query, schema-discovery, or stored-procedure work and returns tool results. Stored-procedure test generation is a documented use case; its analysis and test-emission steps are not shown in sampled runtime code. Server capabilities share server.py; finer-grained boundaries reflect README tool descriptions. Non-README edges are based on excerpts.

Main entry points: [`mcp-server-python/server.py`](https://github.com/ajay-fitbit/mcp/blob/main/mcp-server-python/server.py) (MCP tool server), [`mcp-server-python/openai_client.py`](https://github.com/ajay-fitbit/mcp/blob/main/mcp-server-python/openai_client.py) (OpenAI chat client), [`mcp-server-python/TEST_USP_AHS_AG_CARE_STAFF_ACTIVITIES_GET_INIT.sql`](https://github.com/ajay-fitbit/mcp/blob/main/mcp-server-python/TEST_USP_AHS_AG_CARE_STAFF_ACTIVITIES_GET_INIT.sql) (Generated T-SQL tests), [`mcp-server-python/client.py`](https://github.com/ajay-fitbit/mcp/blob/main/mcp-server-python/client.py) (Python MCP client)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_clients["Assistant clients"]
  node_openai_client["OpenAI chat client<br/>[openai_client.py]"]
  node_python_client["Python MCP client<br/>[client.py]"]
  node_simple_client["Simple MCP client<br/>[simple_client.py]"]
end

subgraph group_mcp["MCP service"]
  node_mcp_server["MCP tool server<br/>[server.py]"]
end

subgraph group_database_ops["Database operations"]
  node_db_connection["Connection lifecycle<br/>[server.py]"]
  node_query_execution["Parameterized queries<br/>[server.py]"]
  node_schema_discovery["Schema discovery<br/>[server.py]"]
  node_procedure_metadata["Procedure metadata<br/>[server.py]"]
  node_procedure_execution["Procedure execution<br/>[server.py]"]
  node_template_queries["Template queries<br/>[server.py]"]
end

subgraph group_test_workflow["Procedure testing"]
  node_test_examples["Generated T-SQL tests"]
end

node_assistant(("AI assistant"))
node_sql_server[("SQL Server")]

node_assistant -->|"asks questions"| node_openai_client
node_openai_client -->|"calls MCP tools"| node_mcp_server
node_assistant -->|"calls MCP tools"| node_mcp_server
node_python_client -.->|"uses MCP"| node_mcp_server
node_simple_client -->|"launches server"| node_mcp_server
node_mcp_server -->|"dispatches tools"| node_db_connection
node_mcp_server -->|"dispatches tools"| node_query_execution
node_mcp_server -->|"dispatches tools"| node_schema_discovery
node_mcp_server -.->|"dispatches tools"| node_procedure_metadata
node_mcp_server -->|"dispatches tools"| node_procedure_execution
node_mcp_server -->|"dispatches tools"| node_template_queries
node_db_connection -->|"connects ODBC"| node_sql_server
node_query_execution -->|"runs queries"| node_sql_server
node_schema_discovery -->|"inspects schema"| node_sql_server
node_procedure_metadata -->|"inspects procedures"| node_sql_server
node_procedure_execution -->|"executes procedures"| node_sql_server
node_assistant -->|"generates tests"| node_test_examples
node_procedure_metadata -->|"informs test cases"| node_test_examples

click node_openai_client "https://github.com/ajay-fitbit/mcp/blob/main/mcp-server-python/openai_client.py"
click node_python_client "https://github.com/ajay-fitbit/mcp/blob/main/mcp-server-python/client.py"
click node_simple_client "https://github.com/ajay-fitbit/mcp/blob/main/mcp-server-python/simple_client.py"
click node_mcp_server "https://github.com/ajay-fitbit/mcp/blob/main/mcp-server-python/server.py"
click node_db_connection "https://github.com/ajay-fitbit/mcp/blob/main/mcp-server-python/server.py"
click node_query_execution "https://github.com/ajay-fitbit/mcp/blob/main/mcp-server-python/server.py"
click node_schema_discovery "https://github.com/ajay-fitbit/mcp/blob/main/mcp-server-python/server.py"
click node_procedure_metadata "https://github.com/ajay-fitbit/mcp/blob/main/mcp-server-python/server.py"
click node_procedure_execution "https://github.com/ajay-fitbit/mcp/blob/main/mcp-server-python/server.py"
click node_template_queries "https://github.com/ajay-fitbit/mcp/blob/main/mcp-server-python/server.py"
click node_test_examples "https://github.com/ajay-fitbit/mcp/blob/main/mcp-server-python/TEST_USP_AHS_AG_CARE_STAFF_ACTIVITIES_GET_INIT.sql"

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_openai_client,node_python_client,node_simple_client toneBlue
class node_mcp_server,node_sql_server toneAmber
class node_db_connection,node_query_execution,node_schema_discovery,node_procedure_metadata,node_procedure_execution,node_template_queries toneMint
class node_test_examples toneRose
class node_assistant toneIndigo
```

## Components

### Assistant clients

- [OpenAI chat client](https://github.com/ajay-fitbit/mcp/blob/main/mcp-server-python/openai_client.py): `mcp-server-python/openai_client.py`
- [Python MCP client](https://github.com/ajay-fitbit/mcp/blob/main/mcp-server-python/client.py): `mcp-server-python/client.py`
- [Simple MCP client](https://github.com/ajay-fitbit/mcp/blob/main/mcp-server-python/simple_client.py): `mcp-server-python/simple_client.py`

### MCP service

- [MCP tool server](https://github.com/ajay-fitbit/mcp/blob/main/mcp-server-python/server.py): `mcp-server-python/server.py`

### Database operations

- [Connection lifecycle](https://github.com/ajay-fitbit/mcp/blob/main/mcp-server-python/server.py): `mcp-server-python/server.py`
- [Parameterized queries](https://github.com/ajay-fitbit/mcp/blob/main/mcp-server-python/server.py): `mcp-server-python/server.py`
- [Schema discovery](https://github.com/ajay-fitbit/mcp/blob/main/mcp-server-python/server.py): `mcp-server-python/server.py`
- [Procedure metadata](https://github.com/ajay-fitbit/mcp/blob/main/mcp-server-python/server.py): `mcp-server-python/server.py`
- [Procedure execution](https://github.com/ajay-fitbit/mcp/blob/main/mcp-server-python/server.py): `mcp-server-python/server.py`
- [Template queries](https://github.com/ajay-fitbit/mcp/blob/main/mcp-server-python/server.py): `mcp-server-python/server.py`

### Procedure testing

- [Generated T-SQL tests](https://github.com/ajay-fitbit/mcp/blob/main/mcp-server-python/TEST_USP_AHS_AG_CARE_STAFF_ACTIVITIES_GET_INIT.sql): `mcp-server-python/TEST_USP_AHS_AG_CARE_STAFF_ACTIVITIES_GET_INIT.sql`

### Other components

- **AI assistant**
- **SQL Server**

## Connections

- AI assistant → OpenAI chat client: asks questions (evidence: `README.md`)
- OpenAI chat client → MCP tool server: calls MCP tools (evidence: `mcp-server-python/openai_client.py`)
- AI assistant → MCP tool server: calls MCP tools (evidence: `README.md`)
- Python MCP client → MCP tool server: uses MCP
- Simple MCP client → MCP tool server: launches server (evidence: `mcp-server-python/simple_client.py`)
- MCP tool server → Connection lifecycle: dispatches tools (evidence: `mcp-server-python/server.py`)
- MCP tool server → Parameterized queries: dispatches tools (evidence: `mcp-server-python/server.py`)
- MCP tool server → Schema discovery: dispatches tools (evidence: `mcp-server-python/server.py`)
- MCP tool server → Procedure metadata: dispatches tools (evidence: `README.md`)
- MCP tool server → Procedure execution: dispatches tools (evidence: `mcp-server-python/server.py`)
- MCP tool server → Template queries: dispatches tools (evidence: `mcp-server-python/server.py`)
- Connection lifecycle → SQL Server: connects ODBC (evidence: `README.md`)
- Parameterized queries → SQL Server: runs queries (evidence: `README.md`)
- Schema discovery → SQL Server: inspects schema (evidence: `README.md`)
- Procedure metadata → SQL Server: inspects procedures (evidence: `README.md`)
- Procedure execution → SQL Server: executes procedures (evidence: `README.md`)
- AI assistant → Generated T-SQL tests: generates tests (evidence: `README.md`)
- Procedure metadata → Generated T-SQL tests: informs test cases (evidence: `README.md`)
