Live

API KEY

LOCATION DATA

Analytics

API key location data for your agent: Mireye returns cited US elevation, flood, and terrain fields on that user's key.

  • Per-user credentials. each call uses the actual user's Mireye API key, never a shared bot.
  • Encrypted per-tenant vault. AES-256, resolved at request time, never in LLM context.
  • Scoped before every call. pre-call scope check, 90-day SIEM-exportable audit chain.
Mireye
agent · Acme Q3
Run
Fetch flood risk for 350 5th Ave, New York, NY 10118.
S
mireye_location_fetch
180ms
Location agent
Flood preset returned elevation, floodplain, and wetland fields, each with source and confidence.
Sources: flood_risk preset, 1 US address
mireye
1 fetch
18:29
Message Claude...

Tools your location agent reaches for on Mireye, scoped per user.

CALL ANY TOOL
API key location data across 21 Mireye tools: geocode, free public fields, parcel enrich, and drive-time proximity on the signed-in user's key.
mireye_address_geocode
Geocode Address
Resolve a US street address to a coordinate and report how precise that coordinate is. Returns lat, lng, accuracy, accuracy_type (rooftop, or range_interpolation, which can be off by about 2.9 km in rural areas), match_type, normalized_address, provider, source, parcel_grade and precision_note. Use mireye_address_geocode to check or reuse a coordinate before calling other tools with lat and lng. mireye_location_fetch, mireye_location_ask and mireye_parcel_enrich also accept an address directly and return the same geocode block. Free.
Parameters
Name
Type
Required
Description
address
string
Required
A full US street address to turn into a coordinate, 1 to 256 characters, with house number, street, city and state or ZIP. A bare street with no locality, or an address the geocoder can only place at a ZIP, city or county centroid, is rejected with 404 address_too_coarse. Example: 350 5th Ave, New York, NY 10118.
mireye_enrich_fields_list
List Enrich Fields
mireye_fetch_fields_list
List Fetch Fields
mireye_field_request_get
Get Field Request
mireye_location_fetch
Fetch Location Data
mireye_operation_get
Get Paid Operation
mireye_plans_list
List Plans and Prices
mireye_run_get
Get Run
mireye_search_fields_list
List Search Fields
mireye_site_get
Get Site
mireye_field_request_create
Request a New Field
mireye_location_ask
Ask About a Location
mireye_parcel_enrich
Enrich Parcel
mireye_parcels_search
Search Parcels
mireye_proximity_distance
Compute Drive Distances
mireye_proximity_labor_shed
Compute Labor Shed
mireye_proximity_nearest
Find Nearest Infrastructure
mireye_proximity_screen
Screen Sites by Drive Time
mireye_run_create
Submit Batch Fetch Run
mireye_site_ask
Ask About a Site
mireye_site_create
Prepare Site
Build your Agent
Same API key vault and scoped tool list across LangChain, OpenAI, Anthropic, and Google ADK.
Python · LlamaIndex
import { ScalekitClient } from "@scalekit-sdk/node";
import { DynamicStructuredTool } from "@langchain/core/tools";
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: ["mireye"], toolNames: [
"mireye_location_fetch",
"mireye_address_geocode",
"mireye_enrich_fields_list",
]}, pageSize: 100,
});
const tools = page.tools.map((t) => new DynamicStructuredTool({
name: t.name, description: t.description, schema: t.inputSchema,
func: (input) => sk.tools.executeTool({ identifier: "user_123", toolName: t.name, toolInput: input }),
});
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: ["mireye"], toolNames: [
"mireye_location_fetch",
"mireye_address_geocode",
"mireye_enrich_fields_list",
]}, pageSize: 100,
});
const result = await sk.tools.executeTool({
identifier: "user_123",
toolName: "mireye_location_fetch",
toolInput: { preset: "flood_risk", address: "350 5th Ave, New York, NY 10118" },
});
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: ["mireye"], toolNames: [
"mireye_location_fetch",
"mireye_address_geocode",
"mireye_enrich_fields_list",
]}, pageSize: 100,
});
// pass page.tools into the Anthropic tool runner
const result = await sk.tools.executeTool({
identifier: "user_123",
toolName: "mireye_address_geocode",
toolInput: { address: "350 5th Ave, New York, NY 10118" },
});
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: ["mireye"], toolNames: [
"mireye_location_fetch",
"mireye_address_geocode",
"mireye_enrich_fields_list",
]}, pageSize: 100,
});
Try these prompts
Copy a prompt into your agent. Each one maps to Mireye location data tools for the signed-in user.
Free public fields
Copy the prompt
Copied
Geocode 350 5th Ave, New York, NY 10118 and report rooftop accuracy.
Copy the prompt
Copied
Fetch the flood_risk preset for that address and cite each field source.
Copy the prompt
Copied
List fetch field names before I pick a preset.
Parcels and search
Copy the prompt
Copied
List enrich field presets, then enrich this parcel with owner and zoning.
Copy the prompt
Copied
Search parcels near that coordinate and cap spend with max_cost_usd 0.10.
Copy the prompt
Copied
Repeat a timed-out enrich with the same idempotency key and identical inputs.
Drive time and sites
Copy the prompt
Copied
Compute drive-time distance from this site to the nearest highway access.
Copy the prompt
Copied
Ask a plain-language question about flood and wetlands at this address.
Copy the prompt
Copied
Create a site record for this address after the fetch returns.
SEE HOW AUTH WORKS
Your users connect once. Their Mireye API keys stay vaulted, every call is checked, and every action is logged.
1
Authorize
Your user connects
Mireye
once. We tie it to their identity and the meetings they approved — no shared bot account, no org-wide access
Who:
user ‘A’
when:
Once per user
access:
Limited to user
2
Store
Their
Mireye
token lives in a vault scoped to them. User A's meetings are never reachable by an agent acting for user B, even on the same connection
vault:
encrypted
scope:
per-user
tokens:
auto-refreshed
3
Resolve
When your agent calls a
Mireye
tool, we fetch the right token server-side. It never touches your agent, never appears in the LLM context, never shows up in your logs
speed:
~40ms
check:
before every call
seen by:
nobody
4
Audit
Every
Mireye
tool call is logged — who triggered it, which meeting was fetched, what came back. 90 days of history, tied to the user who authorized it
history:
90 days
export:
SIEM-ready
logged:
every call
Test other agents
Reuse the same per-user API key vault and audit chain on other location and analytics connectors.
No items found.
Test other agents
Reuse the same per-user API key vault and audit chain on other location and analytics connectors.
No items found.
Why Scalekit
Secure your agent's access. Connectors ship in minutes
01.
Shared tokens break per-user analytics
A shared Mireye API key makes every location fetch look like a bot. Scalekit resolves the key of the actual user who triggered the agent, never a shared bot.
// shared key
audit → bot_acct

// scalekit
audit → user_abc ✓
02.
Authentication is not authorization
03.
Multi-tenancy is architectural
04.
Mireye today. Others tomorrow.
“Our agents act across Salesforce, Gong, Google Drive, and more, on behalf of every customer. Scalekit behind the scenes meant we can keep adding tools without ever rebuilding how credentials or tool calling work.”
Venu Madhav Kattagoni
Head of Engineering / Von
FAQs
Frequently Asked Questions
Does the agent access Mireye as the user or a shared key?
Per-user resolution. Each tool call uses the signed-in user's Mireye API key, so location fetches attribute to that user in the audit log.
Where is the Mireye API key stored?
In Scalekit's AES-256 vault, namespaced per tenant. You revoke access from one dashboard without rotating a shared secret across every agent.
Can I limit what the agent does in Mireye?
Yes. Filter tool names in listScopedTools (for example mireye_location_fetch only) and Scalekit checks that scope before the API call.
What happens when a user revokes access?
The next Mireye tool call fails closed for that user. Other users and other connectors are unaffected. The revoke is logged.
Do paid Mireye tools charge twice if a call times out?
Paid tools take an idempotency key. Repeat the call with the same key and identical inputs to get the saved result without a second charge. A new key is new work.
Start in your coding agent
Up and running in one command
Install the Scalekit skill in your editor of choice. Connector, auth, tools, prompt, all wired up
Claude Code REPL
/plugin marketplace add scalekit-inc/claude-code-authstack
/plugin install agentkit@scalekit-auth-stack
Cursor Code REPL
# ~/.cursor/mcp.json
{
""mcpServers"": {
""mireye"": {
""url"": ""https://mcp.scalekit.com/mireye"",
""headers"": { ""Authorization"": ""Bearer $SCALEKIT_TOKEN"" }
}
}
}
Codex Code REPL
# ~/.codex/config.toml
[mcp_servers.mireye]
url = ""https://mcp.scalekit.com/mireye""
auth_env = ""SCALEKIT_TOKEN""
Copilot Code REPL
# .vscode/mcp.json
{
""servers"": {
""mireye"": {
""url"": ""https://mcp.scalekit.com/mireye"",
""type"": ""http""
}
}
}