The Arcmira MCP connector routes your AI agent's tool calls to Arcmira's own MCP server through Scalekit. Each user signs in to Arcmira once, and Scalekit stores and refreshes their tokens, so your agent never handles credentials. It comes with 4 tools.
- Tools
- 4
- What they doRead · write · destructive
- 1 · 2 · 11 read2 write1 destructive
- Users sign in with
- OAuth
- OAuth app
- Scalekit's or your own
Setup
Install the SDK
Terminal window npm install @scalekit-sdk/node dotenvTerminal window pip install scalekit-sdk-python python-dotenvSet your credentials
Add your Scalekit credentials to your
.envfile. Find values in app.scalekit.com > Developers > API Credentials..env SCALEKIT_ENVIRONMENT_URL=<your-environment-url>SCALEKIT_CLIENT_ID=<your-client-id>SCALEKIT_CLIENT_SECRET=<your-client-secret>Create the Arcmira MCP connection
In AgentKit > Connections, create an Arcmira MCP connection. The name you give it is the
connection_nameyour code passes. See Configure connections.Scalekit credentials are available for Arcmira MCP server, so you don't need to register an OAuth app.
Authorize a user and make your first call
quickstart.mts import { ScalekitClient } from '@scalekit-sdk/node'import 'dotenv/config'import { createInterface } from 'node:readline/promises'const scalekit = new ScalekitClient(process.env.SCALEKIT_ENVIRONMENT_URL,process.env.SCALEKIT_CLIENT_ID,process.env.SCALEKIT_CLIENT_SECRET,)const actions = scalekit.actionsconst connector = 'arcmiramcp'const identifier = 'user_123'// Generate an authorization link for the userconst { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })console.log('Authorize Arcmira MCP:', link)const rl = createInterface({ input: process.stdin, output: process.stdout })await rl.question('Press Enter after authorizing...')rl.close()// Make your first callconst result = await actions.executeTool({connector,identifier,toolName: 'arcmiramcp_arcmira_describe',toolInput: {},})console.log(result)Terminal window npx tsx quickstart.mtsquickstart.py import osfrom scalekit import ScalekitClientfrom dotenv import load_dotenvload_dotenv()scalekit_client = ScalekitClient(env_url=os.getenv("SCALEKIT_ENVIRONMENT_URL"),client_id=os.getenv("SCALEKIT_CLIENT_ID"),client_secret=os.getenv("SCALEKIT_CLIENT_SECRET"),)actions = scalekit_client.actionsconnection_name = "arcmiramcp"identifier = "user_123"# Generate an authorization link for the userlink_response = actions.get_authorization_link(connection_name=connection_name,identifier=identifier,)print("Authorize Arcmira MCP:", link_response.link)input("Press Enter after authorizing...")# Make your first callresult = actions.execute_tool(tool_input={},tool_name="arcmiramcp_arcmira_describe",connection_name=connection_name,identifier=identifier,)print(result)Terminal window python quickstart.pyEach user signs in once. See Authorize a user for the full flow and statuses.
Tools
Pass the exact name toexecute_toolarcmiramcp_arcmira_describeReturns the reference for the typed arcmira client the execute tools run: method arguments, return fields, entity ID rules, examples, errors, the budget and monitor rules, and documentation links.Read-onlyThe arcmira client reference
Returns the reference for the typed arcmira client the execute tools run: method arguments, return fields, entity ID rules, examples, errors, the budget and monitor rules, and documentation links. The optional topic narrows it to a method or subject. Reads no indexed content and bills nothing. Docs: https://arcmira.com/docs/mcp-server
Inputs
intentstring- Optional: the user's request in a few words. Logged with this call to improve Arcmira.
topicstring- One word to narrow the reference, like sponsors, resolve, transcript, monitors or dates. Omit for the whole reference (about 25,000 characters).
arcmiramcp_arcmira_execute_readRuns JavaScript against the Arcmira API through the arcmira client: indexed YouTube and podcast transcripts, mentions, sponsors, recommendations, coverage, Premium transcripts (a Premium read of an untranscribed video starts a transcription that uses credits from the account's plan, then its on-demand budget, and reports its charge), and the user's monitors.WriteResearch with a program
Runs JavaScript against the Arcmira API through the arcmira client: indexed YouTube and podcast transcripts, mentions, sponsors, recommendations, coverage, Premium transcripts (a Premium read of an untranscribed video starts a transcription that uses credits from the account's plan, then its on-demand budget, and reports its charge), and the user's monitors. Input is an async function body with arcmira, ArcmiraError, and console in scope. Output is bounded JSON with the result first, then the call count, rate limit, build and capped logs. Methods and examples: arcmira_describe. Filters require entity, channel, or video IDs. Limits: 30 seconds, 40 API calls, and 12,000 characters of output in total, 3,000 per string, and 100 items per array.
Inputs
codestringrequired- JavaScript source, the body of async function (arcmira, ArcmiraError, console) { ... }. Return a value or console.log lines. No import or export.
intentstring- Optional: the user's request in a few words. Logged with this call to improve Arcmira.
arcmiramcp_arcmira_feedbackSaves a feedback record for the Arcmira team.WriteTell Arcmira what went wrong
Saves a feedback record for the Arcmira team. Send one when a result was wrong, slow, empty or confusing, or when the user wants a source or capability Arcmira lacks. Put what they were doing and any source links in note. Each call adds a record; repeated calls create separate records. Costs nothing.
Inputs
categorystringrequired- wrong_entity: the wrong person, company or show. bad_data: a wrong count, date, quote or label. missing: something that should be there is not. slow: it took too long. confusing: a result, error or rule was hard to act on. other.one of
wrong_entitybad_datamissingslowconfusingother notestringrequired- What happened in a sentence or two: what the user was doing, what came back, what they expected, and any source links. No credentials or personal details.
call_idstring- The call_id a result named (mcpc_ followed by 32 hex characters), for the call this is about.
intentstring- Optional: the user's request in a few words. Logged with this call to improve Arcmira.
request_idstring- The request_id of the error this is about, when there was one.
arcmiramcp_arcmira_execute_writeRuns JavaScript like arcmira_execute_read, plus the monitor writes: create, update (including paused), addEntities, addName and attachTrackers.DestructiveChange Arcmira monitors
Runs JavaScript like arcmira_execute_read, plus the monitor writes: create, update (including paused), addEntities, addName and attachTrackers. Nothing is deleted. The MONITORS section of arcmira_describe has the fields and results. Limits: 30 seconds, 40 API calls, and 12,000 characters of output in total, 3,000 per string, and 100 items per array.
Inputs
codestringrequired- JavaScript source, the body of async function (arcmira, ArcmiraError, console) { ... }. Return a value or console.log lines. No import or export.
intentstring- Optional: the user's request in a few words. Logged with this call to improve Arcmira.
No tools match.