Axiom MCP Server

Integrates with Axiom for executing APL queries and listing datasets, enabling log analysis, anomaly detection, and data-driven decision making.

Skills

Explore the skills and capabilities of this skillset.

queryApl

# Instructions 1. Query Axiom datasets using Axiom Processing Language (APL). The query must be a valid APL query string. 2. ALWAYS get the schema of the dataset before running queries rather than guessing. You can do this by getting a single event and projecting all fields. 3. Keep in mind that there's a maximum row limit of 65000 rows per query. 4. Prefer aggregations over non aggregating queries when possible to reduce the amount of data returned. 5. Be selective in what you project in each query (unless otherwise needed, like for discovering the schema). It's expensive to project all fields. 6. ALWAYS restrict the time range of the query to the smallest possible range that meets your needs. This will reduce the amount of data scanned and improve query performance. 7. NEVER guess the schema of the dataset. If you don't where something is, use search first to find in which fields it appears. # Examples Basic: - Filter: ['logs'] | where ['severity'] == "error" or ['duration'] > 500ms - Time range: ['logs'] | where ['_time'] > ago(2h) and ['_time'] < now() - Project rename: ['logs'] | project-rename responseTime=['duration'], path=['url'] Aggregations: - Count by: ['logs'] | summarize count() by bin(['_time'], 5m), ['status'] - Multiple aggs: ['logs'] | summarize count(), avg(['duration']), max(['duration']), p95=percentile(['duration'], 95) by ['endpoint'] - Dimensional: ['logs'] | summarize dimensional_analysis(['isError'], pack_array(['endpoint'], ['status'])) - Histograms: ['logs'] | summarize histogram(['responseTime'], 100) by ['endpoint'] - Distinct: ['logs'] | summarize dcount(['userId']) by bin_auto(['_time']) Search & Parse: - Search all: search "error" or "exception" - Parse logs: ['logs'] | parse-kv ['message'] as (duration:long, error:string) with (pair_delimiter=",") - Regex extract: ['logs'] | extend errorCode = extract("error code ([0-9]+)", 1, ['message']) - Contains ops: ['logs'] | where ['message'] contains_cs "ERROR" or ['message'] startswith "FATAL" Data Shaping: - Extend & Calculate: ['logs'] | extend duration_s = ['duration']/1000, success = ['status'] < 400 - Dynamic: ['logs'] | extend props = parse_json(['properties']) | where ['props.level'] == "error" - Pack/Unpack: ['logs'] | extend fields = pack("status", ['status'], "duration", ['duration']) - Arrays: ['logs'] | where ['url'] in ("login", "logout", "home") | where array_length(['tags']) > 0 Advanced: - Make series: ['metrics'] | make-series avg(['cpu']) default=0 on ['_time'] step 1m by ['host'] - Join: ['errors'] | join kind=inner (['users'] | project ['userId'], ['email']) on ['userId'] - Union: union ['logs-app*'] | where ['severity'] == "error" - Fork: ['logs'] | fork (where ['status'] >= 500 | as errors) (where ['status'] < 300 | as success) - Case: ['logs'] | extend level = case(['status'] >= 500, "error", ['status'] >= 400, "warn", "info") Time Operations: - Bin & Range: ['logs'] | where ['_time'] between(datetime(2024-01-01)..now()) - Multiple time bins: ['logs'] | summarize count() by bin(['_time'], 1h), bin(['_time'], 1d) - Time shifts: ['logs'] | extend prev_hour = ['_time'] - 1h String Operations: - String funcs: ['logs'] | extend domain = tolower(extract("://([^/]+)", 1, ['url'])) - Concat: ['logs'] | extend full_msg = strcat(['level'], ": ", ['message']) - Replace: ['logs'] | extend clean_msg = replace_regex("(password=)[^&]*", "\1***", ['message']) Common Patterns: - Error analysis: ['logs'] | where ['severity'] == "error" | summarize error_count=count() by ['error_code'], ['service'] - Status codes: ['logs'] | summarize requests=count() by ['status'], bin_auto(['_time']) | where ['status'] >= 500 - Latency tracking: ['logs'] | summarize p50=percentile(['duration'], 50), p90=percentile(['duration'], 90) by ['endpoint'] - User activity: ['logs'] | summarize user_actions=count() by ['userId'], ['action'], bin(['_time'], 1h)

listDatasets

List all available Axiom datasets

getDatasetInfoAndSchema

Get dataset info and schema

Configuration

Customize the skillset to fit your needs.
Connect MCP Server

Axiom MCP Server

Ticket Manager
Collects, analyzes, and manages support tickets from forms and databases, helping you track, prioritize, and respond efficiently.
Google Analyst
Step-by-step guide to connect your Google Analytics 4 (GA4) property to the Google Analyst agent. Covers creating a Google Cloud service account, enabling the Analytics Data API, granting GA4 Viewer access, and configuring the agent with supported metrics like sessions, users, bounce rate, conversions, and more. Perfect for quickly setting up GA4 data reporting in Bika.ai.
Brand Designer
A brand marketing AI assistant specially designed for start-up digital products, helping you quickly generate online promotional materials suitable for Product Hunt, AppSumo and other platforms, covering visual creativity, promotional slogans, brand tone and selling point communication
Office Docs Helper
An AI-powered virtual administrative assistant for internal company operations. Helps you quickly create high-quality internal documents like announcements, meeting minutes, summaries, forms, procedures, and HR records.
AI Writer
Tell me about the AI product or brand — I’ll draft engaging marketing copy, articles, and social media posts tailored to your brand voice and product details, complete with relevant links and illustrations.
X/Twitter Manager
An AI-powered Twitter Assistant that helps content creators turn AI product experiences into viral tweets — with auto-polish, smart research, and one-click posting.
Email Marketer
Finds leads and sends a 3-day follow-up email sequence automatically.
Discourse Community Manager
Discourse Community Manager Agent helps you quickly generate clear, friendly, and well-structured replies to user posts, making community moderation easier and more professional.
AI Programmer
AI Programmer is an AI agent that transforms your raw release notes into stylish, ready-to-publish HTML pages.

Frequently Asked Questions

Quick one-sentence introduction: What is Bika.ai?
What make Bika.ai so unique?
The English abbreviation "BIKA" stands for what meaning?
How does Bika.ai automate tasks with AI?
Is Bika.ai free to use?
What is the difference between Bika.ai and AI assistants like ChatGPT, Gemini?
What is the difference between Bika.ai and spreadsheet database?
Does Bika.ai get poor performance when the single database records reaches tens of thousands or hundreds of thousands of rows and the associations become more complex?
What is the 'Space' in Bika.ai?
How many paid spaces do I own after making a payment?
What does 'Resources' mean?
How does the Bika.ai team 'eat your own dog food' (use their own product)?
How does Bika.ai help improve work efficiency?
What are the features of Bika.ai's AI automation?
What are the automation templates in Bika.ai?
Does Bika.ai support team collaboration and permissions features?

Embark on Your AI Automation

Axiom MCP Server | Bika.ai: AI Organizer for One-Person Company