@vernikr/gemini-mcp 0.0.0-stage → 0.8.1
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.
- package/README.md +18 -2
- package/bin/gemini-mcp.js +25 -0
- package/package.json +20 -4
package/README.md
CHANGED
|
@@ -1,3 +1,19 @@
|
|
|
1
|
-
#
|
|
1
|
+
# @vernikr/gemini-mcp
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
One-command Gemini **free-tier** MCP gateway (Python core: `gemini-mcp-gateway` on PyPI,
|
|
4
|
+
bootstrapped via [uv](https://docs.astral.sh/uv/) — no system Python needed). Works
|
|
5
|
+
**without any server**: default `direct` mode talks to Google AI Studio straight from
|
|
6
|
+
your machine; `router` mode joins a fleet gateway with a shared quota ledger.
|
|
7
|
+
|
|
8
|
+
```bash
|
|
9
|
+
pnpm dlx @vernikr/gemini-mcp setup # wizard: AI Studio keys → ~/.config/gemini-mcp
|
|
10
|
+
# → live key probe → client snippets
|
|
11
|
+
pnpm dlx @vernikr/gemini-mcp doctor # self-check with fix commands
|
|
12
|
+
pnpm dlx @vernikr/gemini-mcp quota # free-tier budget table
|
|
13
|
+
pnpm dlx @vernikr/gemini-mcp uninstall --yes # remove keys+config
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
Features: quota-aware routing across the Flash chain (two routes: `optimal` /
|
|
17
|
+
`best_available`), massive-body chunked analysis with consolidation, file ingest with
|
|
18
|
+
server-side RTF/DOCX→Markdown extraction, async tickets for long jobs, structured
|
|
19
|
+
agent-facing errors. Repo: github.com/vernikr/gemini-mcp
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
"use strict";
|
|
3
|
+
/* @vernikr/gemini-mcp — thin bootstrap: runs the pinned Python core
|
|
4
|
+
(PyPI dist: gemini-mcp-gateway) through uv. No core logic lives here.
|
|
5
|
+
Version lockstep: this package's version == the PyPI pin. */
|
|
6
|
+
const { spawnSync } = require("node:child_process");
|
|
7
|
+
const CORE = "gemini-mcp-gateway";
|
|
8
|
+
const VER = require("../package.json").version;
|
|
9
|
+
|
|
10
|
+
function uvx() {
|
|
11
|
+
const hit = spawnSync("sh", ["-c", "command -v uvx"], { encoding: "utf8" });
|
|
12
|
+
if (hit.status === 0 && hit.stdout.trim()) return [hit.stdout.trim(), []];
|
|
13
|
+
return ["npx", ["-y", "@astral-sh/uv", "uvx"]]; // uv self-installs via npm
|
|
14
|
+
}
|
|
15
|
+
const [cmd, base] = uvx();
|
|
16
|
+
// bin name != dist name: uvx needs --from (verified against PyPI 0.7.1)
|
|
17
|
+
const res = spawnSync(cmd, [...base, "--from", `${CORE}==${VER}`, "gemini-mcp",
|
|
18
|
+
...process.argv.slice(2)],
|
|
19
|
+
{ stdio: "inherit" });
|
|
20
|
+
if (res.error) {
|
|
21
|
+
console.error(`gemini-mcp: bootstrap failed: ${res.error.message}`);
|
|
22
|
+
console.error("hint: install uv once: curl -LsSf https://astral.sh/uv/install.sh | sh");
|
|
23
|
+
process.exit(1);
|
|
24
|
+
}
|
|
25
|
+
process.exit(res.status == null ? 1 : res.status);
|
package/package.json
CHANGED
|
@@ -1,6 +1,22 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vernikr/gemini-mcp",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"
|
|
5
|
-
"
|
|
6
|
-
|
|
3
|
+
"version": "0.8.1",
|
|
4
|
+
"description": "One-command Gemini free-tier MCP gateway: quota-aware model routing, massive-body chunked analysis, file ingest (RTF/DOCX→Markdown), async tickets. Thin bootstrap for the Python core gemini-mcp-gateway.",
|
|
5
|
+
"bin": {
|
|
6
|
+
"gemini-mcp": "bin/gemini-mcp.js"
|
|
7
|
+
},
|
|
8
|
+
"files": [
|
|
9
|
+
"bin"
|
|
10
|
+
],
|
|
11
|
+
"license": "MIT",
|
|
12
|
+
"engines": {
|
|
13
|
+
"node": ">=18"
|
|
14
|
+
},
|
|
15
|
+
"repository": {
|
|
16
|
+
"type": "git",
|
|
17
|
+
"url": "git+https://github.com/vernikr/gemini-mcp.git"
|
|
18
|
+
},
|
|
19
|
+
"publishConfig": {
|
|
20
|
+
"access": "public"
|
|
21
|
+
}
|
|
22
|
+
}
|