@striderlabs/mcp-alaska
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@@striderlabs/mcp-alaskafind flights from SEA to LAX on 2024-12-25"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
@striderlabs/mcp-alaska
An MCP (Model Context Protocol) server for Alaska Airlines that enables AI assistants to interact with Alaska Airlines services using Playwright browser automation.
Features
Search and browse flights
View flight details and seat maps
Select flights and seats
Manage bookings (view, check-in, cancel)
Check flight status in real-time
View Mileage Plan balance and elite status
View upcoming trips
Related MCP server: mcp-southwest
Installation
npm install -g @striderlabs/mcp-alaska
npx playwright install chromiumOr install locally:
npm install @striderlabs/mcp-alaska
npx playwright install chromiumUsage with Claude Desktop
Add to your claude_desktop_config.json:
{
"mcpServers": {
"alaska": {
"command": "striderlabs-mcp-alaska"
}
}
}Or if installed locally:
{
"mcpServers": {
"alaska": {
"command": "npx",
"args": ["@striderlabs/mcp-alaska"]
}
}
}Tools
alaska_login
Log in to your Alaska Airlines account. Required for account-specific operations.
Parameters:
email(string, required): Your Alaska Airlines account emailpassword(string, required): Your Alaska Airlines account password
Example:
{
"email": "user@example.com",
"password": "yourpassword"
}alaska_search_flights
Search for available flights between two airports.
Parameters:
origin(string, required): Origin airport code (e.g.,SEA,LAX,SFO)destination(string, required): Destination airport codedate(string, required): Travel date inYYYY-MM-DDformatpassengers(number, optional): Number of passengers (default:1)cabin_class(string, optional):economy,premium-economy, orfirst-class(default:economy)
Returns: List of available flights with prices, times, and flight IDs.
alaska_get_flight_details
Get detailed information about a specific flight.
Parameters:
flight_id(string, required): Flight ID from search results or flight number (e.g.,AS123)
Returns: Flight details including amenities, baggage policy, on-time performance, and layover information.
alaska_select_flight
Select a flight to proceed with booking.
Parameters:
flight_id(string, required): Flight ID fromalaska_search_flightsresults
Returns: Confirmation of selection with session data for the booking flow.
alaska_get_seat_map
View the seat map for a flight showing available, occupied, and blocked seats.
Parameters:
flight_id(string, required): Flight ID or flight number
Returns: Full seat map organized by cabin (First Class, Main Cabin) with seat status, type, and any associated fees.
alaska_select_seat
Select a specific seat on a flight.
Parameters:
flight_id(string, required): Flight ID or flight numberseat(string, required): Seat identifier (e.g.,12A,23F,4C)
Returns: Confirmation of seat selection.
alaska_get_booking
Retrieve booking details using a confirmation code.
Parameters:
confirmation_code(string, required): 6-character Alaska Airlines confirmation code (e.g.,ABCDEF)
Returns: Full booking details including passenger information, flight itinerary, and booking status.
alaska_check_in
Check in for a flight. Available within 24 hours of departure.
Parameters:
confirmation_code(string, required): 6-character Alaska Airlines confirmation code
Returns: Check-in confirmation with boarding pass details including gate, boarding group, and boarding time.
alaska_get_mileage_balance
View your Alaska Airlines Mileage Plan balance and elite status.
Requires: Being logged in via alaska_login
Returns: Total miles, elite qualifying miles, tier status, expiring miles, and membership details.
alaska_get_upcoming_trips
View all upcoming trips associated with your account.
Requires: Being logged in via alaska_login
Returns: List of upcoming trips with flight details, confirmation codes, and trip status.
alaska_cancel_booking
Cancel an Alaska Airlines booking.
Parameters:
confirmation_code(string, required): 6-character Alaska Airlines confirmation code
Returns: Cancellation confirmation with any applicable refund amount.
Note: Cancellation fees may apply depending on fare type. Check Alaska Airlines' cancellation policy before cancelling.
alaska_get_flight_status
Get real-time status for an Alaska Airlines flight.
Parameters:
flight_number(string, required): Flight number (e.g.,AS123or123)date(string, required): Flight date inYYYY-MM-DDformat
Returns: Current flight status including departure/arrival times, gate information, terminal, and delay information.
Example Workflow
1. Search for flights:
alaska_search_flights(origin="SEA", destination="LAX", date="2025-03-15")
2. Get details on a specific flight:
alaska_get_flight_details(flight_id="AS127")
3. View available seats:
alaska_get_seat_map(flight_id="AS127")
4. Select flight and seat:
alaska_select_flight(flight_id="AS127")
alaska_select_seat(flight_id="AS127", seat="14A")
5. Check booking status:
alaska_get_booking(confirmation_code="XKJT89")
6. Check in 24 hours before departure:
alaska_check_in(confirmation_code="XKJT89")Development
# Clone repository
git clone https://github.com/markswendsen-code/mcp-alaska.git
cd mcp-alaska
# Install dependencies
npm install
# Install Playwright browsers
npx playwright install chromium
# Build
npm run build
# Run
node dist/index.jsArchitecture
The server uses two main modules:
src/index.ts: MCP server setup with tool definitions and request handlerssrc/browser.ts: Playwright automation helpers that interact with the Alaska Airlines website
The browser module maintains a persistent browser session to avoid re-launching the browser for each tool call. The session is automatically closed when the server shuts down.
Requirements
Node.js >= 18.0.0
Playwright Chromium browser
License
MIT
Disclaimer
This tool uses browser automation to interact with the Alaska Airlines website. Use responsibly and in accordance with Alaska Airlines' Terms of Service. This is not an official Alaska Airlines product.
Available Tools
12 toolsalaska_cancel_bookingA
Cancel an Alaska Airlines booking. Check cancellation policy before cancelling as fees may apply.
| Name | Required | Description | Default |
|---|---|---|---|
| confirmation_code | Yes | 6-character Alaska Airlines confirmation code |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must disclose behaviors. It mentions fees but does not cover authentication, side effects (e.g., refund, seat release), or whether cancellation is reversible. For a destructive action, more detail is needed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences. First states purpose, second adds a crucial precaution. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With one parameter and no output schema, the description covers the essential action and a warning. Missing details on return value or post-cancel steps, but sufficient for a simple cancellation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with a clear description of confirmation_code. The top-level description adds no extra param info, so baseline score of 3 is correct.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool cancels an Alaska Airlines booking, with a specific verb and resource. It distinguishes well from sibling tools like check_in or get_booking.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly advises to check the cancellation policy before proceeding, hinting at fees. No explicit when-not-to-use or alternatives, but the warning is useful for correct usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
alaska_check_inA
Check in for an Alaska Airlines flight using the confirmation code. Opens within 24 hours of departure.
| Name | Required | Description | Default |
|---|---|---|---|
| confirmation_code | Yes | 6-character Alaska Airlines confirmation code |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It does not disclose what happens after check-in (e.g., boarding pass generation), whether login is required, or side effects. The mutation action is implied but under-explained.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences: one for purpose and one for timing constraint. Efficient, front-loaded, and every word adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations and no output schema, the description covers the primary action and timing but omits important context such as prerequisites (login), result information, and potential error conditions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with a clear description of the confirmation_code parameter. The description reinforces using that code but adds no new semantic detail beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool checks in for an Alaska Airlines flight using a confirmation code, and it distinguishes itself from sibling tools like alaska_get_booking and alaska_select_seat by focusing solely on the check-in action.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage is only within 24 hours of departure ('Opens within 24 hours of departure'), but it does not explicitly state when not to use it or mention alternatives such as needing to get booking details first.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
alaska_get_bookingA
Retrieve booking details using a confirmation code. Returns passenger info, flight details, and booking status.
| Name | Required | Description | Default |
|---|---|---|---|
| confirmation_code | Yes | 6-character Alaska Airlines confirmation code (e.g., ABCDEF) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears full burden. It correctly implies a read-only operation and lists return content, but lacks details on authorization requirements, error handling for invalid codes, or any side effects. It meets a minimum standard but leaves gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, front-loaded with the verb and resource, no unnecessary words. Every piece of information is relevant and earn its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With one required parameter and no output schema, the description tells what the tool returns but omits important context like authentication state (sibling alaska_login suggests login may be needed) and error scenarios. It is adequate but not comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema coverage is 100% with a clear description for the single parameter 'confirmation_code' (6-character code). The description adds no extra semantic value beyond the schema, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'retrieve' and the specific resource 'booking details' using a confirmation code. It explicitly lists return contents (passenger info, flight details, booking status), and the tool name and siblings like 'alaska_cancel_booking' show it's distinct.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives (e.g., alaska_get_flight_details, alaska_get_upcoming_trips). It does not mention prerequisites, such as needing to be logged in, or situations where this tool is inappropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
alaska_get_flight_detailsB
Get detailed information about a specific flight including amenities, baggage policy, and on-time performance.
| Name | Required | Description | Default |
|---|---|---|---|
| flight_id | Yes | Flight ID returned from alaska_search_flights or flight number (e.g., AS123) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries the burden. It lists three specific detail categories (amenities, baggage, performance) which gives some behavioral context, but omits whether authentication is required, if it's read-only, or any side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence with no wasted words. Could be slightly more structured with bullet points for clarity, but it is efficient and front-loaded with the core purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description lists three categories but does not fully describe the return format or error handling. Adequate for a simple lookup tool but could be more complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for the single parameter flight_id. The description adds value by hinting at the kind of details returned but does not add specific parameter semantics beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the verb 'Get' and resource 'detailed information about a specific flight' with specific examples like amenities, baggage policy, and on-time performance. Distinct from siblings such as alaska_get_flight_status, which likely provides only status.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like alaska_get_flight_status or alaska_get_seat_map. No mention of prerequisites or typical use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
alaska_get_flight_statusA
Get real-time status for an Alaska Airlines flight including departure/arrival times, gate, and delays.
| Name | Required | Description | Default |
|---|---|---|---|
| flight_number | Yes | Alaska Airlines flight number (e.g., AS123 or 123) | |
| date | Yes | Flight date in YYYY-MM-DD format |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must cover behavior. It states 'real-time status,' indicating a read operation, but does not disclose authentication requirements, rate limits, error handling (e.g., non-existent flight), or output format. Adds some value but leaves gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence with no wasted words. Front-loaded with the verb 'Get' and resource 'real-time status.' Efficient and clear.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple status-check tool with no output schema, the description is reasonably complete. It covers the main purpose and output elements. However, it could mention that it requires a valid Alaska flight number and date, and what happens if the flight is not found (e.g., error or null). Mostly adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with well-described parameters (flight_number, date). The description adds no extra meaning beyond the schema, meeting the baseline for high coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool gets real-time flight status and lists specific data (departure/arrival times, gate, delays), distinguishing it from siblings like alaska_get_flight_details (likely more static) and alaska_search_flights (finding flights).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies real-time use but provides no explicit when-to-use or when-to-avoid guidance. Alternatives like alaska_get_booking or alaska_get_upcoming_trips are not mentioned. Usage context is minimal.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
alaska_get_mileage_balanceA
Get the Alaska Airlines Mileage Plan balance and elite status. Requires being logged in.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description must carry the full burden. It mentions a login requirement but does not disclose whether the operation is read-only, any side effects, or other behavioral traits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no wasted words. The description is appropriately sized and front-loaded with the action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with no parameters and no output schema, the description covers the essential purpose and a key prerequisite. It could hint at the output format, but overall it is fairly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters, and schema coverage is 100%. With no parameters to describe, the description adds no parameter semantics but also needs none. Baseline for 0 params is 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it retrieves the Alaska Airlines Mileage Plan balance and elite status. The verb 'Get' and the specific resource distinguish it from sibling tools like get_booking or get_flight_details.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The only guidance provided is that being logged in is required. No mention of when to use this tool versus alternatives, no exclusion criteria, and no context about prerequisites beyond login.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
alaska_get_seat_mapB
Get the seat map for a flight showing available and occupied seats across all cabin classes.
| Name | Required | Description | Default |
|---|---|---|---|
| flight_id | Yes | Flight ID or flight number |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. Description implies read-only operation but doesn't disclose latency, authorization needs, or whether the seat map reflects real-time availability or static layout.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no redundancy, efficiently conveys core purpose and output.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 1 parameter and no output schema, the description adequately indicates the return value (seat map with available/occupied seats). Could mention details like seat layout, but not critical.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for flight_id, so baseline is 3. Description doesn't add extra meaning (e.g., format, examples, or constraints) beyond the schema's 'Flight ID or flight number'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states verb 'Get' and resource 'seat map for a flight', specifying the scope 'across all cabin classes'. Distinguishes from siblings like alaska_get_flight_details (flight info) and alaska_select_seat (seat selection).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or when-not-to-use. Context suggests it's a precursor to seat selection but no guidance on alternatives or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
alaska_get_upcoming_tripsA
Get a list of upcoming trips associated with the logged-in account. Requires being logged in.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It states the tool is read-only (get) and requires authentication. Beyond that, it does not disclose error handling, rate limits, or what happens if not logged in. For a simple get, this is adequate but could be more detailed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise: two sentences, front-loaded with the purpose. Every word adds value without being verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description should explain what the return value looks like (e.g., list of trip objects with dates, destinations). It does not, leaving the agent uninformed about the response structure. This is a significant gap for a straightforward tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the input schema is fully covered. With 0 parameters, the baseline is 4. The description does not need to add parameter semantics, and it doesn't.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool gets a list of upcoming trips, which is a specific verb and resource. It distinguishes from sibling tools like cancel_booking or check_in, as those handle different actions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions the login requirement, which is a prerequisite. However, it does not provide guidance on when to use this tool versus alternatives like get_booking or get_flight_status. Usage context is implied but no explicit when-not-to-use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
alaska_loginA
Log in to Alaska Airlines account. Required for account-specific operations like viewing mileage balance, upcoming trips, and managing bookings.
| Name | Required | Description | Default |
|---|---|---|---|
| Yes | Alaska Airlines account email address | ||
| password | Yes | Alaska Airlines account password |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavior. It only states the basic action and necessity for other operations. It lacks details on session management, error handling, or security precautions, which are critical for a login tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the primary action, and no unnecessary words. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers purpose and usage context adequately for a simple tool, but lacks details on the output (e.g., session token) and error states, which are important without an output schema or annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with both parameters clearly described. The description adds no extra meaning beyond the schema, so a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool logs in to an Alaska Airlines account, specifying the action and resource. It also explains that it is a prerequisite for account-specific operations, distinguishing it from sibling tools that require authentication.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says login is 'required for account-specific operations,' guiding when to use it. It does not mention when not to use it or alternatives, but the context of sibling tools makes the usage clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
alaska_search_flightsB
Search for available Alaska Airlines flights between two airports on a specific date.
| Name | Required | Description | Default |
|---|---|---|---|
| origin | Yes | Origin airport code (e.g., SEA, LAX, SFO) | |
| destination | Yes | Destination airport code (e.g., SEA, LAX, SFO) | |
| date | Yes | Travel date in YYYY-MM-DD format | |
| passengers | No | Number of passengers (default: 1) | |
| cabin_class | No | Cabin class: economy, premium-economy, or first-class | economy |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description must disclose behavioral traits. It omits whether the operation is read-only, what the return format is (e.g., list of flight options with prices, schedules), or any constraints like rate limits or data freshness. The agent must guess the output structure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no wasted words. It efficiently conveys the tool's core purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having 5 parameters and no output schema, the description does not explain what the search returns (e.g., list of flights with prices, times) or any pagination/availability details. For a flight search tool, this is a significant gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description does not add extra meaning beyond the schema; it simply paraphrases the parameters. However, it correctly includes the key constraints (origin, destination, date).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it searches for available Alaska Airlines flights between two airports on a specific date. This verb+resource phrasing distinguishes it from siblings like alaska_cancel_booking or alaska_get_flight_status.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus siblings. For example, it does not explain that this is for initial flight browsing before selecting a specific flight with alaska_select_flight, or when to use alaska_get_flight_status for existing bookings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
alaska_select_flightA
Select a flight for booking. Use after alaska_search_flights to choose a specific flight.
| Name | Required | Description | Default |
|---|---|---|---|
| flight_id | Yes | Flight ID from alaska_search_flights results |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It states the tool selects a flight for booking, implying it's a prerequisite step. However, it does not disclose potential side effects (e.g., locking a flight) or further steps required. The basic behavior is clear but lacks depth.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with two short sentences, front-loading the purpose and usage context. Every sentence adds value without waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter, no output schema), the description is reasonably complete. It identifies the prerequisite step and purpose. It could mention that selection is part of a booking workflow, but the key information is present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with one parameter described as 'Flight ID from alaska_search_flights results'. The description adds no additional meaning beyond the schema, so baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Select a flight for booking' and specifies the context 'Use after alaska_search_flights'. This provides a specific verb and resource, differentiating it from sibling tools like search_flights and cancel_booking.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says 'Use after alaska_search_flights', giving clear guidance on when to use. While it does not explicitly state when not to use, the context implies it should only be used after searching, which is adequate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
alaska_select_seatA
Select a specific seat on a flight. Use alaska_get_seat_map first to see available seats.
| Name | Required | Description | Default |
|---|---|---|---|
| flight_id | Yes | Flight ID or flight number | |
| seat | Yes | Seat identifier (e.g., "12A", "23F", "4C") |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, and the description lacks details on behavioral traits such as whether the selection is reversible, confirms immediately, or requires additional steps. This is insufficient for a tool that likely modifies a booking.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with two sentences, front-loading the core function and essential usage guidance without any wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of output schema and annotations, the description does not explain what happens after selection (e.g., confirmation, error handling, or impact on booking). This leaves important context gaps for a mutation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema fully describes both parameters with 100% coverage. The description adds an example seat identifier format but does not provide significant additional meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool selects a specific seat on a flight, using a specific verb and resource. It also distinguishes from sibling tools by mentioning the prerequisite alaska_get_seat_map.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly advises using alaska_get_seat_map first, providing clear guidance for proper sequencing. However, it does not specify when not to use this tool or mention alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Each tool targets a distinct operation: booking management, flight search, seat selection, check-in, loyalty account queries, etc. There is no ambiguity or overlap in their purposes.
All tools follow the 'alaska_<verb>_<noun>' pattern consistently. Verbs like get, search, select, cancel, check_in clearly indicate the action, and nouns specify the resource.
12 tools is appropriate for an airline travel service, covering flight search, booking, management, check-in, and account features without being excessive or deficient.
Core workflows are well-covered: search, select flight, view seat map, select seat, get/cancel booking, check-in, flight status, and mileage balance. Missing a final 'book' or 'confirm booking' tool, but the flow is navigable.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Flight search MCP server providing search, pagination, and itinerary details for AI assistants.
Search and compare flight offers through a cache-aware Streamable HTTP MCP server for AI agents.
Skiplagged MCP Server for flight search, hotel booking, and travel planning
Hosted MCP server connecting AI assistants to 9,000+ apps and 40,000+ actions via Zapier.
Related MCP Servers
- AlicenseAqualityDmaintenanceAn MCP server that enables AI agents to search Hilton hotels, manage reservations, and check Hilton Honors status through browser automation. It supports the full booking flow, points redemption, and digital key access via natural language commands.1617MIT
- AlicenseAqualityDmaintenanceAn MCP server for Southwest Airlines that enables flight searching, booking, and reservation management via browser automation. It allows users to check in, retrieve boarding passes, and manage Rapid Rewards accounts through natural language.13532MIT
- AlicenseNot gradedqualityAmaintenanceAn MCP Server that enables AI assistants to interact with your local browsers.3,60754MIT
- AlicenseNot gradedqualityDmaintenanceMCP server that provides standardized access to Google Maps, Flights, Hotels, and other search services, enabling AI assistants to perform various searches.MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/markswendsen-code/mcp-alaska'
If you have feedback or need assistance with the MCP directory API, please join our Discord server