Skip to content

Commit 7a9543e

Browse files
authored
Add server.json (#44)
- Create convenience to bump all the versions.
1 parent 8ecd7ba commit 7a9543e

File tree

7 files changed

+123
-3
lines changed

7 files changed

+123
-3
lines changed

.github/workflows/ci.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@ jobs:
5757
username: ${{ secrets.SCOUTAPP_DOCKER_USERNAME }}
5858
password: ${{ secrets.SCOUTAPP_DOCKER_PAT }}
5959

60+
6061
- name: Extract metadata
6162
id: meta
6263
uses: docker/metadata-action@v5
@@ -67,6 +68,8 @@ jobs:
6768
type=ref,event=pr
6869
type=match,pattern=v(.*),group=1
6970
type=raw,value=latest,enable={{is_default_branch}}
71+
labels: |
72+
io.modelcontextprotocol.server.name=io.github.scoutapp/scout-mcp-local
7073
7174
- name: Build and push Docker image
7275
uses: docker/build-push-action@v5

README.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
# Scout Monitoring MCP
22

3+
<!-- mcp-name: io.github.com/scoutapp/scout-mcp-local -->
4+
35
This repository contains code to locally run an MCP server that can access [Scout
46
Monitoring](https://www.scoutapm.com) data via Scout's API. We provide a Docker image that can be pulled and run by
57
your AI Assistant to access Scout Monitoring data.
@@ -219,3 +221,8 @@ Connect within inspector to add API key, set to STDIO transport
219221
docker build -t scout-mcp-local .
220222
```
221223

224+
## Release
225+
226+
1. Branch and bump versions with `uv run python bump_versions.py`
227+
1. Get that merged
228+
1. Create a GitHub release with the new version (`gh release create v2025.11.3 --generate-notes --draft`)

bump_versions.py

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
"""This is silly, but we version several different things here. This just runs through
2+
and updates all the version numbers at once to the current date."""
3+
4+
import argparse
5+
import datetime
6+
import json
7+
import subprocess
8+
9+
10+
def parse_args() -> dict:
11+
"""Parse command line arguments."""
12+
parser = argparse.ArgumentParser(
13+
description="Bump all version numbers to today's date or specified version."
14+
)
15+
parser.add_argument(
16+
"--version",
17+
help="Specify a custom version instead of today's date.",
18+
)
19+
20+
return vars(parser.parse_args())
21+
22+
23+
def bump_npm(new_version: str) -> None:
24+
"""Bump the version in package.json."""
25+
subprocess.run(
26+
["npm", "version", new_version],
27+
cwd="wizard",
28+
)
29+
30+
31+
def bump_python_version(new_version: str) -> None:
32+
"""Bump the version in the Python package."""
33+
subprocess.run(["uv", "version", new_version])
34+
35+
36+
def bump_mcp_json(new_version: str) -> None:
37+
"""Bump the version in server.json."""
38+
server_json_path = "server.json"
39+
with open(server_json_path, "r") as f:
40+
content = json.load(f)
41+
42+
content["version"] = new_version
43+
for obj in content["packages"]:
44+
if "version" in obj:
45+
obj["version"] = new_version
46+
47+
with open(server_json_path, "w") as f:
48+
json.dump(content, f, indent=2)
49+
50+
51+
def main() -> None:
52+
"""Bump all version numbers to today's date."""
53+
args = parse_args()
54+
today = datetime.date.today().strftime("%Y.%-m.%-d")
55+
new_version = args["version"] if args["version"] else today
56+
print(f"Bumping all versions to {new_version}...")
57+
bump_npm(new_version)
58+
bump_python_version(new_version)
59+
bump_mcp_json(new_version)
60+
print(f"Bumped all versions to {new_version}")
61+
print("You need to commit and push.")
62+
63+
64+
if __name__ == "__main__":
65+
main()

server.json

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
{
2+
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-10-17/server.schema.json",
3+
"name": "io.github.scoutapp/scout-mcp-local",
4+
"description": "An MCP server for Scout Monitoring data interactions.",
5+
"repository": {
6+
"url": "https://github.com/scoutapp/scout-mcp-local",
7+
"source": "github"
8+
},
9+
"version": "2025.10.30",
10+
"packages": [
11+
{
12+
"registryType": "pypi",
13+
"identifier": "scout-mcp-local",
14+
"version": "2025.10.30",
15+
"transport": {
16+
"type": "stdio"
17+
},
18+
"environmentVariables": [
19+
{
20+
"description": "Your API key for Scout Monitoring.",
21+
"isRequired": true,
22+
"format": "string",
23+
"isSecret": true,
24+
"name": "SCOUT_API_KEY"
25+
}
26+
]
27+
},
28+
{
29+
"registryType": "oci",
30+
"identifier": "docker.io/scoutapp/scout-mcp-local:latest",
31+
"environmentVariables": [
32+
{
33+
"name": "SCOUT_API_KEY",
34+
"description": "Your API key for Scout Monitoring.",
35+
"isRequired": true,
36+
"isSecret": true
37+
}
38+
],
39+
"transport": {
40+
"type": "stdio"
41+
}
42+
}
43+
]
44+
}

uv.lock

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

wizard/package-lock.json

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

wizard/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
"version": "2025.10.30",
44
"description": "Scout Wizard",
55
"main": "dist/scout-wizard.js",
6+
"repository": "github:scoutapp/scout-mcp-local",
67
"bin": {
78
"scout-wizard": "dist/wizard.js"
89
},

0 commit comments

Comments
 (0)