Skip to content

Commit d878695

Browse files
committed
feat: add desktop launcher, port controls, and Windows executable packaging
1 parent 8acaf1d commit d878695

53 files changed

Lines changed: 883 additions & 21 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.env.example

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
# Copyright (c) 2026 Chris Favre
12
# MCP4BAS environment template
23
# Copy to `.env` and adjust for your site/lab.
34

@@ -7,6 +8,13 @@
78
BAS_OPERATION_MODE=read-only
89
BAS_DRY_RUN=true
910

11+
# ---------------------------------
12+
# MCP server HTTP bind settings
13+
# Used by streamable-http and sse transports.
14+
# ---------------------------------
15+
FASTMCP_HOST=127.0.0.1
16+
FASTMCP_PORT=8000
17+
1018
# ---------------------------------
1119
# BACnet settings
1220
# ---------------------------------

.github/dependabot.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
# Copyright (c) 2026 Chris Favre
12
version: 2
23
updates:
34
- package-ecosystem: "pip"

.github/workflows/ci.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
# Copyright (c) 2026 Chris Favre
12
name: CI
23

34
on:

.github/workflows/codeql.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
# Copyright (c) 2026 Chris Favre
12
name: CodeQL
23

34
on:

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
# Copyright (c) 2026 Chris Favre
12
# Python bytecode and caches
23
__pycache__/
34
*.py[cod]

.vscode/tasks.json

Lines changed: 29 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,27 +5,49 @@
55
"label": "lint:ruff",
66
"type": "shell",
77
"command": ".\\.venv\\Scripts\\python.exe",
8-
"args": ["-m", "ruff", "check", "src", "tests"],
9-
"problemMatcher": ["$eslint-stylish"],
8+
"args": [
9+
"-m",
10+
"ruff",
11+
"check",
12+
"src",
13+
"tests"
14+
],
15+
"problemMatcher": [
16+
"$eslint-stylish"
17+
],
1018
"group": "test"
1119
},
1220
{
1321
"label": "typecheck:mypy",
1422
"type": "shell",
1523
"command": ".\\.venv\\Scripts\\python.exe",
16-
"args": ["-m", "mypy", "src"],
17-
"problemMatcher": ["$msCompile"],
24+
"args": [
25+
"-m",
26+
"mypy",
27+
"src"
28+
],
29+
"problemMatcher": [
30+
"$msCompile"
31+
],
1832
"group": "test"
1933
},
2034
{
2135
"label": "quality:all",
2236
"type": "shell",
2337
"command": ".\\.venv\\Scripts\\python.exe",
24-
"args": ["-m", "pytest", "-q"],
38+
"args": [
39+
"-m",
40+
"pytest",
41+
"-q"
42+
],
2543
"problemMatcher": [],
26-
"dependsOn": ["lint:ruff", "typecheck:mypy"],
44+
"dependsOn": [
45+
"lint:ruff",
46+
"typecheck:mypy"
47+
],
2748
"dependsOrder": "sequence",
2849
"group": "test"
2950
}
30-
]
51+
],
52+
"_copyright": "Copyright (c) 2026 Chris Favre"
3153
}

CLAUDE_DESKTOP_SETUP.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
<!-- Copyright (c) 2026 Chris Favre -->
12
# MCP4BAS setup for Claude Desktop (Windows, beginner guide)
23

34
This guide is for a low-tech user who wants to run MCP4BAS in Claude Desktop.

LICENSE

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
# Copyright (c) 2026 Chris Favre
12
MIT License
23

34
Copyright (c) 2026 Chris Favre

README.md

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
<!-- Copyright (c) 2026 Chris Favre -->
12
<a id="top"></a>
23

34
# MCP4BAS
@@ -101,6 +102,23 @@ On first run, if `.env` does not exist, MCP4BAS creates one from `.env.example`
101102

102103
> **Windows + Claude Desktop?** See [CLAUDE_DESKTOP_SETUP.md](CLAUDE_DESKTOP_SETUP.md) for a full beginner-friendly walkthrough including the Microsoft Store build path.
103104
105+
### Desktop launcher (Tkinter)
106+
107+
After install, launch the basic desktop UI with:
108+
109+
```bash
110+
mcp4bas-ui
111+
```
112+
113+
The launcher provides:
114+
- Start/stop controls for the MCP server
115+
- Transport selection (`stdio`, `streamable-http`, `http`, `sse`)
116+
- Basic `.env` controls for protocol toggles, write safety mode, and HTTP bind host/port (`FASTMCP_HOST`, `FASTMCP_PORT`)
117+
118+
For local HTTP clients on the same machine, point to `http://127.0.0.1:<FASTMCP_PORT>`.
119+
120+
If Tk support is missing in your Python runtime, the launcher exits with a clear error so you can install a Tk-enabled Python build.
121+
104122
---
105123

106124
## What has been live-validated

SITE_SWITCH.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
<!-- Copyright (c) 2026 Chris Favre -->
12
# Site Switch Test Script
23

34
Use this script every time you move between buildings or networks.

0 commit comments

Comments
 (0)