Skip to content
Open
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
13 changes: 13 additions & 0 deletions registry/xquik.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
name: xquik
displayName: Xquik
description: X automation API for search, extraction, compose, events, monitors, and webhooks
specUrl: https://xquik.com/openapi.json
baseUrl: https://xquik.com

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Set Xquik baseUrl to the API root

When users run toolcast add xquik, src/cli.ts always emits toolcast serve <specUrl> --base-url <entry.baseUrl>, so this value overrides the OpenAPI server. The Xquik spec declares https://xquik.com/api/v1 and paths like /account; with https://xquik.com here, generated tools call URLs such as https://xquik.com/account instead of https://xquik.com/api/v1/account, making the generated MCP config hit the wrong routes.

Useful? React with 👍 / 👎.

authType: apiKey
authEnvVar: X_API_KEY
authHeaderName: x-api-key
tags:
- social
- automation
- extraction
- webhooks
9 changes: 9 additions & 0 deletions test/registry.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ describe("Registry", () => {
expect(names).toContain("github");
expect(names).toContain("stripe");
expect(names).toContain("petstore");
expect(names).toContain("xquik");
});

it("each entry has required fields", async () => {
Expand Down Expand Up @@ -55,6 +56,14 @@ describe("Registry", () => {
expect(entry!.authType).toBe("none");
});

it("gets Xquik API key auth metadata", async () => {
const entry = await getRegistryEntry("xquik");
expect(entry).toBeDefined();
expect(entry!.authType).toBe("apiKey");
expect(entry!.authEnvVar).toBe("X_API_KEY");
expect(entry!.authHeaderName).toBe("x-api-key");
});

it("returns undefined for missing entry", async () => {
const entry = await getRegistryEntry("nonexistent");
expect(entry).toBeUndefined();
Expand Down