mcpgawk 0.1.1__tar.gz → 0.1.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {mcpgawk-0.1.1 → mcpgawk-0.1.2}/CHANGELOG.md +14 -1
- {mcpgawk-0.1.1 → mcpgawk-0.1.2}/PKG-INFO +11 -13
- {mcpgawk-0.1.1 → mcpgawk-0.1.2}/README.md +9 -11
- mcpgawk-0.1.2/assets/brand/social-preview.png +0 -0
- {mcpgawk-0.1.1/docs → mcpgawk-0.1.2}/assets/brand/social-preview.svg +2 -2
- mcpgawk-0.1.2/docs/CNAME +1 -0
- mcpgawk-0.1.2/docs/assets/brand/social-preview.png +0 -0
- {mcpgawk-0.1.1 → mcpgawk-0.1.2}/docs/index.html +6 -6
- {mcpgawk-0.1.1 → mcpgawk-0.1.2}/pyproject.toml +2 -2
- mcpgawk-0.1.1/assets/brand/social-preview.png +0 -0
- mcpgawk-0.1.1/docs/CNAME +0 -1
- mcpgawk-0.1.1/docs/assets/brand/social-preview.png +0 -0
- {mcpgawk-0.1.1 → mcpgawk-0.1.2}/.github/workflows/ci.yml +0 -0
- {mcpgawk-0.1.1 → mcpgawk-0.1.2}/.gitignore +0 -0
- {mcpgawk-0.1.1 → mcpgawk-0.1.2}/BRAND.md +0 -0
- {mcpgawk-0.1.1 → mcpgawk-0.1.2}/CONTRIBUTING.md +0 -0
- {mcpgawk-0.1.1 → mcpgawk-0.1.2}/LICENSE +0 -0
- {mcpgawk-0.1.1 → mcpgawk-0.1.2}/NOTICE +0 -0
- {mcpgawk-0.1.1 → mcpgawk-0.1.2}/SECURITY.md +0 -0
- {mcpgawk-0.1.1 → mcpgawk-0.1.2}/THREAT-MODEL.md +0 -0
- {mcpgawk-0.1.1 → mcpgawk-0.1.2}/assets/brand/demo.gif +0 -0
- {mcpgawk-0.1.1 → mcpgawk-0.1.2}/assets/brand/favicon.svg +0 -0
- {mcpgawk-0.1.1 → mcpgawk-0.1.2}/assets/brand/identity-board.html +0 -0
- {mcpgawk-0.1.1 → mcpgawk-0.1.2}/assets/brand/nativerse-mark.svg +0 -0
- {mcpgawk-0.1.1 → mcpgawk-0.1.2}/assets/brand/wordmark-dark.png +0 -0
- {mcpgawk-0.1.1 → mcpgawk-0.1.2}/assets/brand/wordmark-dark.svg +0 -0
- {mcpgawk-0.1.1 → mcpgawk-0.1.2}/assets/brand/wordmark-light.png +0 -0
- {mcpgawk-0.1.1 → mcpgawk-0.1.2}/assets/brand/wordmark-light.svg +0 -0
- {mcpgawk-0.1.1 → mcpgawk-0.1.2}/docs/assets/brand/favicon.svg +0 -0
- {mcpgawk-0.1.1 → mcpgawk-0.1.2}/docs/assets/brand/nativerse-mark.svg +0 -0
- {mcpgawk-0.1.1 → mcpgawk-0.1.2/docs}/assets/brand/social-preview.svg +0 -0
- {mcpgawk-0.1.1 → mcpgawk-0.1.2}/docs/styles.css +0 -0
- {mcpgawk-0.1.1 → mcpgawk-0.1.2}/examples/mcp.json +0 -0
- {mcpgawk-0.1.1 → mcpgawk-0.1.2}/src/mcpgawk/__init__.py +0 -0
- {mcpgawk-0.1.1 → mcpgawk-0.1.2}/src/mcpgawk/__main__.py +0 -0
- {mcpgawk-0.1.1 → mcpgawk-0.1.2}/src/mcpgawk/cli.py +0 -0
- {mcpgawk-0.1.1 → mcpgawk-0.1.2}/src/mcpgawk/drift.py +0 -0
- {mcpgawk-0.1.1 → mcpgawk-0.1.2}/src/mcpgawk/history.py +0 -0
- {mcpgawk-0.1.1 → mcpgawk-0.1.2}/src/mcpgawk/label.py +0 -0
- {mcpgawk-0.1.1 → mcpgawk-0.1.2}/src/mcpgawk/measure.py +0 -0
- {mcpgawk-0.1.1 → mcpgawk-0.1.2}/src/mcpgawk/probe.py +0 -0
- {mcpgawk-0.1.1 → mcpgawk-0.1.2}/src/mcpgawk/servercard.py +0 -0
- {mcpgawk-0.1.1 → mcpgawk-0.1.2}/src/mcpgawk/signals.py +0 -0
- {mcpgawk-0.1.1 → mcpgawk-0.1.2}/tests/test_drift.py +0 -0
- {mcpgawk-0.1.1 → mcpgawk-0.1.2}/tests/test_measure.py +0 -0
- {mcpgawk-0.1.1 → mcpgawk-0.1.2}/tests/test_no_egress.py +0 -0
- {mcpgawk-0.1.1 → mcpgawk-0.1.2}/tests/test_servercard.py +0 -0
- {mcpgawk-0.1.1 → mcpgawk-0.1.2}/tests/test_signals.py +0 -0
- {mcpgawk-0.1.1 → mcpgawk-0.1.2}/uv.lock +0 -0
|
@@ -2,7 +2,20 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to mcpgawk. Format: [Keep a Changelog](https://keepachangelog.com/); versioning: [SemVer](https://semver.org/).
|
|
4
4
|
|
|
5
|
-
## [0.1.
|
|
5
|
+
## [0.1.2] — 2026-07-08
|
|
6
|
+
|
|
7
|
+
### Changed
|
|
8
|
+
- Plain, reader-first README and package description.
|
|
9
|
+
- README images use absolute URLs so they render on PyPI (relative paths only work on GitHub).
|
|
10
|
+
|
|
11
|
+
## [0.1.1] — 2026-07-08
|
|
12
|
+
|
|
13
|
+
### Fixed
|
|
14
|
+
- A tool declaring `destructiveHint: true` is now counted as write/mutating even when its name isn't a
|
|
15
|
+
write-verb (e.g. a `pause_job` tool). Previously the verb heuristic could leave a declared-destructive
|
|
16
|
+
tool unflagged.
|
|
17
|
+
|
|
18
|
+
## [0.1.0] — 2026-07-08
|
|
6
19
|
|
|
7
20
|
Initial release. Local-first MCP measurement.
|
|
8
21
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: mcpgawk
|
|
3
|
-
Version: 0.1.
|
|
4
|
-
Summary:
|
|
3
|
+
Version: 0.1.2
|
|
4
|
+
Summary: A local-first CLI that measures what an MCP server costs and what it can do. Nothing leaves your machine.
|
|
5
5
|
Project-URL: Homepage, https://mcp.gawk.dev
|
|
6
6
|
Project-URL: Documentation, https://mcp.gawk.dev
|
|
7
7
|
Project-URL: Repository, https://github.com/gawk-dev/mcpgawk
|
|
@@ -29,11 +29,11 @@ Description-Content-Type: text/markdown
|
|
|
29
29
|
|
|
30
30
|
<p align="center">
|
|
31
31
|
<picture>
|
|
32
|
-
<source media="(prefers-color-scheme: dark)" srcset="assets/brand/wordmark-dark.png">
|
|
33
|
-
<img alt="mcpgawk by nativerse" src="assets/brand/wordmark-light.png" width="320">
|
|
32
|
+
<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/gawk-dev/mcpgawk/main/assets/brand/wordmark-dark.png">
|
|
33
|
+
<img alt="mcpgawk by nativerse" src="https://raw.githubusercontent.com/gawk-dev/mcpgawk/main/assets/brand/wordmark-light.png" width="320">
|
|
34
34
|
</picture>
|
|
35
35
|
</p>
|
|
36
|
-
<p align="center"><em>
|
|
36
|
+
<p align="center"><em>Make MCP lean and honest.</em></p>
|
|
37
37
|
|
|
38
38
|
# mcpgawk
|
|
39
39
|
|
|
@@ -43,20 +43,18 @@ Description-Content-Type: text/markdown
|
|
|
43
43
|
[](https://github.com/gawk-dev/mcpgawk/actions/workflows/ci.yml)
|
|
44
44
|
[](#guarantees)
|
|
45
45
|
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
expose — **without the server's inventory ever leaving your machine.**
|
|
46
|
+
A local-first command that measures what a [Model Context Protocol](https://modelcontextprotocol.io)
|
|
47
|
+
server costs and what it can do. It runs on your machine and uploads nothing.
|
|
49
48
|
|
|
50
49
|
<p align="center">
|
|
51
|
-
<img src="assets/brand/demo.gif" alt="mcpgawk scanning an MCP server — tools, token cost, and capability flags, locally" width="760">
|
|
50
|
+
<img src="https://raw.githubusercontent.com/gawk-dev/mcpgawk/main/assets/brand/demo.gif" alt="mcpgawk scanning an MCP server — tools, token cost, and capability flags, locally" width="760">
|
|
52
51
|
</p>
|
|
53
52
|
<p align="center"><sub>Real output. Reproducible on your machine — no account, nothing uploaded.</sub></p>
|
|
54
53
|
|
|
55
54
|
## Why
|
|
56
55
|
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
surface**. mcpgawk measures both, **locally**, and never phones home about what it saw.
|
|
56
|
+
Connect an MCP server and it loads all its tools into your AI's context. Every request. Used or not.
|
|
57
|
+
You pay for those tokens, and you haven't checked what the tools can do. mcpgawk shows you both, locally.
|
|
60
58
|
|
|
61
59
|
## How it's different
|
|
62
60
|
|
|
@@ -110,7 +108,7 @@ mcpgawk scan mcp.json --json # machine-read
|
|
|
110
108
|
- **Facts ≠ heuristics.** Exact capability facts and the token index never mix with the bounded
|
|
111
109
|
heuristic signals — separate in code, separate in output.
|
|
112
110
|
- **Reproducible.** One command, identical numbers.
|
|
113
|
-
- **
|
|
111
|
+
- **Tracks the protocol.** Built on the official `mcp` SDK, which negotiates the protocol version.
|
|
114
112
|
|
|
115
113
|
## Develop
|
|
116
114
|
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
<p align="center">
|
|
2
2
|
<picture>
|
|
3
|
-
<source media="(prefers-color-scheme: dark)" srcset="assets/brand/wordmark-dark.png">
|
|
4
|
-
<img alt="mcpgawk by nativerse" src="assets/brand/wordmark-light.png" width="320">
|
|
3
|
+
<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/gawk-dev/mcpgawk/main/assets/brand/wordmark-dark.png">
|
|
4
|
+
<img alt="mcpgawk by nativerse" src="https://raw.githubusercontent.com/gawk-dev/mcpgawk/main/assets/brand/wordmark-light.png" width="320">
|
|
5
5
|
</picture>
|
|
6
6
|
</p>
|
|
7
|
-
<p align="center"><em>
|
|
7
|
+
<p align="center"><em>Make MCP lean and honest.</em></p>
|
|
8
8
|
|
|
9
9
|
# mcpgawk
|
|
10
10
|
|
|
@@ -14,20 +14,18 @@
|
|
|
14
14
|
[](https://github.com/gawk-dev/mcpgawk/actions/workflows/ci.yml)
|
|
15
15
|
[](#guarantees)
|
|
16
16
|
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
expose — **without the server's inventory ever leaving your machine.**
|
|
17
|
+
A local-first command that measures what a [Model Context Protocol](https://modelcontextprotocol.io)
|
|
18
|
+
server costs and what it can do. It runs on your machine and uploads nothing.
|
|
20
19
|
|
|
21
20
|
<p align="center">
|
|
22
|
-
<img src="assets/brand/demo.gif" alt="mcpgawk scanning an MCP server — tools, token cost, and capability flags, locally" width="760">
|
|
21
|
+
<img src="https://raw.githubusercontent.com/gawk-dev/mcpgawk/main/assets/brand/demo.gif" alt="mcpgawk scanning an MCP server — tools, token cost, and capability flags, locally" width="760">
|
|
23
22
|
</p>
|
|
24
23
|
<p align="center"><sub>Real output. Reproducible on your machine — no account, nothing uploaded.</sub></p>
|
|
25
24
|
|
|
26
25
|
## Why
|
|
27
26
|
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
surface**. mcpgawk measures both, **locally**, and never phones home about what it saw.
|
|
27
|
+
Connect an MCP server and it loads all its tools into your AI's context. Every request. Used or not.
|
|
28
|
+
You pay for those tokens, and you haven't checked what the tools can do. mcpgawk shows you both, locally.
|
|
31
29
|
|
|
32
30
|
## How it's different
|
|
33
31
|
|
|
@@ -81,7 +79,7 @@ mcpgawk scan mcp.json --json # machine-read
|
|
|
81
79
|
- **Facts ≠ heuristics.** Exact capability facts and the token index never mix with the bounded
|
|
82
80
|
heuristic signals — separate in code, separate in output.
|
|
83
81
|
- **Reproducible.** One command, identical numbers.
|
|
84
|
-
- **
|
|
82
|
+
- **Tracks the protocol.** Built on the official `mcp` SDK, which negotiates the protocol version.
|
|
85
83
|
|
|
86
84
|
## Develop
|
|
87
85
|
|
|
Binary file
|
|
@@ -8,8 +8,8 @@
|
|
|
8
8
|
<text x="256" y="196" dominant-baseline="central" font-family="Sentient, Georgia, serif" font-weight="500" font-size="104" letter-spacing="-3" fill="#16160F">mcpgawk</text>
|
|
9
9
|
<text x="258" y="270" font-family="Supreme, -apple-system, sans-serif" font-size="30" letter-spacing="0.5" fill="#6B6B5E">by <tspan fill="#2A33C2" font-weight="500">nativerse</tspan></text>
|
|
10
10
|
<line x1="96" y1="352" x2="1184" y2="352" stroke="#E7E6E0" stroke-width="1.5"/>
|
|
11
|
-
<text x="96" y="438" font-family="Sentient, Georgia, serif" font-size="42" fill="#3A3A30">
|
|
11
|
+
<text x="96" y="438" font-family="Sentient, Georgia, serif" font-size="42" fill="#3A3A30">Make it lean. Make it honest.</text>
|
|
12
12
|
<text x="96" y="524" font-family="Tabular, ui-monospace, Menlo, monospace" font-size="25" fill="#717166"><tspan fill="#2A9d6b">●</tspan> cli-stdio 14 tools 2061 tok@connect 4 flagged</text>
|
|
13
13
|
<circle cx="102" cy="576" r="6" fill="#2A9d6b"/>
|
|
14
|
-
<text x="120" y="576" dominant-baseline="central" font-family="Tabular, ui-monospace, Menlo, monospace" font-size="24" letter-spacing="1" fill="#6B6B5E">local ·
|
|
14
|
+
<text x="120" y="576" dominant-baseline="central" font-family="Tabular, ui-monospace, Menlo, monospace" font-size="24" letter-spacing="1" fill="#6B6B5E">local · nothing leaves your machine</text>
|
|
15
15
|
</svg>
|
mcpgawk-0.1.2/docs/CNAME
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
mcp.gawk.dev
|
|
Binary file
|
|
@@ -3,10 +3,10 @@
|
|
|
3
3
|
<head>
|
|
4
4
|
<meta charset="utf-8">
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
6
|
-
<title>mcpgawk ·
|
|
7
|
-
<meta name="description" content="A local-first CLI that measures what an MCP server costs and
|
|
6
|
+
<title>mcpgawk · measure any MCP server, locally</title>
|
|
7
|
+
<meta name="description" content="A local-first CLI that measures what an MCP server costs and what it can do. Make MCP lean and honest. Nothing leaves your machine.">
|
|
8
8
|
<meta property="og:title" content="mcpgawk by nativerse">
|
|
9
|
-
<meta property="og:description" content="MCP
|
|
9
|
+
<meta property="og:description" content="Every MCP server loads all its tools into your AI's context, on every request. mcpgawk measures the cost and the risk, locally.">
|
|
10
10
|
<meta property="og:image" content="assets/brand/social-preview.png">
|
|
11
11
|
<meta name="twitter:card" content="summary_large_image">
|
|
12
12
|
<link rel="icon" href="assets/brand/favicon.svg">
|
|
@@ -42,8 +42,8 @@
|
|
|
42
42
|
<div class="wrap">
|
|
43
43
|
<div class="hero-grid">
|
|
44
44
|
<div class="hero-copy">
|
|
45
|
-
<p class="n-kicker n-kicker--accent">
|
|
46
|
-
<h1 class="n-hero" style="margin-top:16px">
|
|
45
|
+
<p class="n-kicker n-kicker--accent">MCP connects your AI to everything</p>
|
|
46
|
+
<h1 class="n-hero" style="margin-top:16px">Make it lean. Make it honest.</h1>
|
|
47
47
|
<p class="n-lead" style="margin-top:20px;max-width:54ch">Connect an MCP server and it loads every tool into your AI's context. Every message. Used or not. You pay for those tokens, and you haven't checked what the tools can do. mcpgawk shows you both. <span class="n-em">Locally.</span></p>
|
|
48
48
|
<div class="cta-row">
|
|
49
49
|
<a class="n-btn" href="#measure">Measure your stack</a>
|
|
@@ -145,7 +145,7 @@
|
|
|
145
145
|
<div class="foot-grid">
|
|
146
146
|
<div class="foot-brand">
|
|
147
147
|
<a class="brand" href="/"><img class="brand-icon" src="assets/brand/nativerse-mark.svg" alt=""><span class="brand-name">mcpgawk</span></a>
|
|
148
|
-
<p class="footer-motto">
|
|
148
|
+
<p class="footer-motto">Make MCP lean and honest.<small>by nativerse · gawk.dev</small></p>
|
|
149
149
|
</div>
|
|
150
150
|
<div class="foot-col">
|
|
151
151
|
<p class="n-kicker">Project</p>
|
|
@@ -4,8 +4,8 @@ build-backend = "hatchling.build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "mcpgawk"
|
|
7
|
-
version = "0.1.
|
|
8
|
-
description = "
|
|
7
|
+
version = "0.1.2"
|
|
8
|
+
description = "A local-first CLI that measures what an MCP server costs and what it can do. Nothing leaves your machine."
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.10"
|
|
11
11
|
license = "Apache-2.0"
|
|
Binary file
|
mcpgawk-0.1.1/docs/CNAME
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
mcp.gawk.dev
|
|
Binary file
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|