Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 2 additions & 3 deletions .claude-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "baserow",
"displayName": "Baserow",
"version": "0.1.0",
"version": "0.1.1",
"description": "Read and change Baserow tables from your AI agent through Baserow's MCP server.",
"author": { "name": "Baserow", "url": "https://baserow.io" },
"homepage": "https://baserow.io",
Expand All @@ -12,8 +12,7 @@
"type": "string",
"title": "Baserow MCP URL",
"description": "Keep the default for baserow.io. For self-hosted Baserow, copy it from Settings → MCP server. It ends in /mcp.",
"default": "https://api.baserow.io/mcp",
"required": true
"default": "https://api.baserow.io/mcp"
}
},
"mcpServers": {
Expand Down
2 changes: 1 addition & 1 deletion .cursor-plugin/plugin.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
"name": "baserow",
"displayName": "Baserow",
"description": "Read and change Baserow tables from your AI agent through Baserow's MCP server.",
"version": "0.1.0",
"version": "0.1.1",
"author": { "name": "Baserow", "url": "https://baserow.io" },
"homepage": "https://baserow.io",
"repository": "https://github.com/baserow/baserow-mcp",
Expand Down
2 changes: 1 addition & 1 deletion gemini-extension.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "baserow",
"version": "0.1.0",
"version": "0.1.1",
"description": "Read and change Baserow tables from your AI agent through Baserow's MCP server.",
"contextFileName": "GEMINI.md",
"mcpServers": {
Expand Down
2 changes: 1 addition & 1 deletion plugin.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
"name": "baserow",
"version": "0.1.0",
"version": "0.1.1",
"description": "Read and change Baserow tables from your AI agent through Baserow's MCP server.",
"author": { "name": "Baserow", "url": "https://baserow.io" },
"homepage": "https://baserow.io",
Expand Down
8 changes: 8 additions & 0 deletions scripts/check-manifests.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -112,6 +112,14 @@ export function checkSync(m) {
for (const remote of remotes.filter((r) => r?.variables)) {
const problem = urlProblem(remote.url);
if (problem) errors.push(`${FILES.registry}: remote ${remote.url} ${problem}`);
const used = [...String(remote.url).matchAll(/\{([^}]+)\}/g)].map(([, name]) => name);
const declared = Object.keys(remote.variables);
for (const name of used.filter((n) => !declared.includes(n))) {
errors.push(`${FILES.registry}: remote ${remote.url} uses {${name}}, which isn't in its variables`);
}
for (const name of declared.filter((n) => !used.includes(n))) {
errors.push(`${FILES.registry}: remote ${remote.url} declares ${name}, which its URL doesn't use`);
}
}
// Claude Code fills in the user's URL; every other client reads the literal URL in .mcp.json.
const claudeUrl = m.claudePlugin?.mcpServers?.[SERVER_NAME]?.url;
Expand Down
8 changes: 8 additions & 0 deletions scripts/check-manifests.test.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -267,3 +267,11 @@ test("a listing logo that doesn't exist is reported", async (t) => {
m.agentPlugin.extensions = { "com.openai": { interface: { logo: "./assets/logo.png", composerIcon: "./assets/missing.svg" } } };
assert.deepEqual(await checkAssets(m, root), ["plugin.json: interface.composerIcon ./assets/missing.svg not found"]);
});

test("registry URL variables must match the URL", () => {
const m = validManifests();
m.registry.remotes[1].url = "https://{baserow_host}/mcp";
const errors = checkSync(m).join("\n");
assert.match(errors, /uses \{baserow_host\}, which isn't in its variables/);
assert.match(errors, /declares host, which its URL doesn't use/);
});
8 changes: 4 additions & 4 deletions server.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
"name": "io.baserow/baserow",
"title": "Baserow",
"description": "Read and change Baserow tables.",
"version": "0.1.0",
"version": "0.1.1",
"repository": {
"url": "https://github.com/baserow/baserow-mcp",
"source": "github"
Expand Down Expand Up @@ -32,10 +32,10 @@
},
{
"type": "streamable-http",
"url": "https://{host}/mcp",
"url": "https://{baserow_host}/mcp",
"variables": {
"host": {
"description": "Your self-hosted Baserow backend host, with a path prefix if it has one, for example baserow.example.com or example.com/baserow",
"baserow_host": {
"description": "Your self-hosted Baserow backend host, for example baserow.example.com",
"isRequired": true
}
}
Expand Down
Loading