OAUTH 2.1
LIST RESEARCH
OAuth 2.1 list research: your agent finds companies, jobs, papers, and more through SpecStream MCP with the signed-in user's token.
import { ScalekitClient } from "@scalekit-sdk/node";
const sk = new ScalekitClient(
process.env.SCALEKIT_ENVIRONMENT_URL,
process.env.SCALEKIT_CLIENT_ID,
process.env.SCALEKIT_CLIENT_SECRET,
);
const page = await sk.tools.listScopedTools("user_123", {
filter: { connectionNames: ["specstreammcp"], toolNames: [
"specstreammcp_compile",
"specstreammcp_edit_spec",
"specstreammcp_get_capacity_balance",
]}, pageSize: 100,
});import OpenAI from "openai";
import { ScalekitClient } from "@scalekit-sdk/node";
const sk = new ScalekitClient(
process.env.SCALEKIT_ENVIRONMENT_URL,
process.env.SCALEKIT_CLIENT_ID,
process.env.SCALEKIT_CLIENT_SECRET,
);
const page = await sk.tools.listScopedTools("user_123", {
filter: { connectionNames: ["specstreammcp"], toolNames: [
"specstreammcp_compile",
"specstreammcp_edit_spec",
"specstreammcp_get_capacity_balance",
]}, pageSize: 100,
});
const openai = new OpenAI();import Anthropic from "@anthropic-ai/sdk";
import { ScalekitClient } from "@scalekit-sdk/node";
const sk = new ScalekitClient(
process.env.SCALEKIT_ENVIRONMENT_URL,
process.env.SCALEKIT_CLIENT_ID,
process.env.SCALEKIT_CLIENT_SECRET,
);
const page = await sk.tools.listScopedTools("user_123", {
filter: { connectionNames: ["specstreammcp"], toolNames: [
"specstreammcp_compile",
"specstreammcp_edit_spec",
"specstreammcp_get_capacity_balance",
]}, pageSize: 100,
});
const anthropic = new Anthropic();import { ScalekitClient } from "@scalekit-sdk/node";
const sk = new ScalekitClient(
process.env.SCALEKIT_ENVIRONMENT_URL,
process.env.SCALEKIT_CLIENT_ID,
process.env.SCALEKIT_CLIENT_SECRET,
);
const page = await sk.tools.listScopedTools("user_123", {
filter: { connectionNames: ["specstreammcp"], toolNames: [
"specstreammcp_compile",
"specstreammcp_edit_spec",
"specstreammcp_get_capacity_balance",
]}, pageSize: 100,
});// shared key
audit → bot_acct
// scalekit
audit → user_abc ✓