Metaintro MCP
An official MCP server provided by Metaintro that allows AI agents to access live job postings, employer profiles, and market insights. It supports public read-only search without authentication and offers personal or organizational access via OAuth or API keys for managing job searches, profiles, and applications.
Endpoint and access
No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.
https://www.metaintro.com/api/mcp/publicWhat its tools do
7 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.
Checks and signals
Each line is separate evidence, not a trust score.
- Passed Endpoint answered the live check ·
- Passed Official MCP Registry namespace is tied to metaintro.com ·
- Passed Endpoint is on the registry namespace domain ·
- Warning Advertises resources/templates/list but does not implement it
- Availability 1 of 1 checks passed in 30 days
What you can do with it
- Search for live job openings by role, location, and pay
- Read detailed job postings and employer company profiles
- Get market insights including median pay and top skills
- Manage personal job search, resumes, and tracked applications
Source and maintenance
Protocol and capabilities
- Server
- metaintro 1.14.0
- MCP protocol negotiated in check
- 2025-11-25
- Tools
- 7 advertised
- Resources
- 1 advertised
- Resource templates
- Not advertised
- Prompts
- 2 advertised
{
"tools": {},
"prompts": {},
"resources": {}
}Server-provided instructions
Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.
Tools
7 advertised
search_jobs — Search jobs
Search jobs: find live job openings from employer career sites and job boards that match what the person wants, by role or keywords, place, remote work, employment type and pay. filters.jobTypes takes FULL_TIME, PART_TIME, CONTRACT or other listed types; any of them match. filters.salaryListedOnly keeps only jobs that post pay. filters.minSalary is annual pay in the requested currency, and ranges that only overlap it are included. Each card carries fit (every applied filter as met, partial, unknown or not_met, and verdict match or near_match: present a near_match as a near match, never as a match; a match meets only the applied filters, so lead stays conditional while unconfirmed names pay, hours, commute or licence, and label is the heading to use), posting (age, freshness, last seen live) and the employer's title and summary as source text. Licence requirements and eligibility remain unassessed. coverage says what was searched and whether more pages exist; an empty or short result covers only this search, not every job. Up to 10 cards a page; page with offset. Each job opens at https://www.metaintro.com/job/<id>.
{
"type": "object",
"required": [
"query"
],
"properties": {
"limit": {
"type": "integer",
"maximum": 10,
"minimum": 1
},
"query": {
"type": "string",
"maxLength": 300,
"minLength": 3
},
"cursor": {
"type": "integer",
"maximum": 1000,
"minimum": 0
},
"locale": {
"type": "string",
"maxLength": 8
},
"offset": {
"type": "integer",
"maximum": 1000,
"minimum": 0
},
"filters": {
"type": "object",
"properties": {
"currency": {
"anyOf": [
{
"type": "string",
"maxLength": 5
},
{
"type": "null"
}
]
},
"hybridOk": {
"type": [
"boolean",
"null"
]
},
"industry": {
"anyOf": [
{
"type": "array",
"items": {
"type": "string",
"maxLength": 80
}
},
{
"type": "null"
}
]
},
"jobTitle": {
"anyOf": [
{
"type": "string",
"maxLength": 300
},
{
"type": "null"
}
]
},
"jobTypes": {
"anyOf": [
{
"type": "array",
"items": {
"enum": [
"FULL_TIME",
"PART_TIME",
"INTERNSHIP",
"CONTRACT",
"TEMPORARY",
"FREELANCE",
"APPRENTICESHIP",
"PHD",
"OTHER"
],
"type": "string"
},
"maxItems": 9
},
{
"type": "null"
}
]
},
"postedOn": {
"anyOf": [
{
"type": "string",
"maxLength": 10
},
{
"type": "null"
}
]
},
"remoteOk": {
"type": [
"boolean",
"null"
]
},
"locations": {
"anyOf": [
{
"type": "array",
"items": {
"type": "object",
"properties": {
"city": {
"type": "string"
},
"label": {
"type": "string"
},
"osmId": {
"type": "string"
},
"state": {
"type": "string"
},
"country": {
"type": "string"
},
"continent": {
"type": "string"
},
"proximity": {
"enum": [
"primary",
"nearby"
],
"type": "string"
},
"distanceMi": {
"type": "number",
"minimum": 0
},
"coordinates": {
"type": "object",
"required": [
"lon",
"lat"
],
"properties": {
"lat": {
"type": "number"
},
"lon": {
"type": "number"
}
}
},
"unstructured": {
"type": "string"
}
}
}
},
{
"type": "null"
}
]
},
"minSalary": {
"anyOf": [
{
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991
},
{
"type": "null"
}
]
},
"jobCategory": {
"anyOf": [
{
"type": "string",
"maxLength": 100
},
{
"type": "null"
}
]
},
"fundingStage": {
"anyOf": [
{
"type": "array",
"items": {
"type": "string"
}
},
{
"type": "null"
}
]
},
"searchPhrases": {
"anyOf": [
{
"type": "array",
"items": {
"type": "string",
"maxLength": 500
}
},
{
"type": "null"
}
]
},
"titleContains": {
"anyOf": [
{
"type": "array",
"items": {
"type": "string",
"maxLength": 500
}
},
{
"type": "null"
}
]
},
"titleExcludes": {
"anyOf": [
{
"type": "array",
"items": {
"type": "string",
"maxLength": 80
}
},
{
"type": "null"
}
]
},
"salaryListedOnly": {
"type": [
"boolean",
"null"
]
},
"strictTitleMatch": {
"type": [
"boolean",
"null"
]
},
"titleExcludePhrases": {
"anyOf": [
{
"type": "array",
"items": {
"type": "string",
"maxLength": 80
}
},
{
"type": "null"
}
]
},
"titleIncludePhrases": {
"anyOf": [
{
"type": "array",
"items": {
"type": "string",
"maxLength": 80
}
},
{
"type": "null"
}
]
}
}
},
"purpose": {
"type": "string",
"const": "similar_jobs"
},
"variants": {
"type": "array",
"items": {
"anyOf": [
{
"type": "string",
"maxLength": 300,
"minLength": 3
},
{
"type": "string",
"pattern": "^\\s{0,2}$"
}
]
},
"maxItems": 4,
"description": "Up to 4 more wordings of the same search, such as other job titles for the same work. They run at the same time as query, with the same filters, radius, limit and page, and each counts as one search toward the search limit. Results come back in variants, one entry per wording, leaving out jobs already listed above them; repeatedJobIds names those. Use this instead of separate searches for alternative titles."
},
"commuteRadiusMiles": {
"type": "number",
"maximum": 100,
"minimum": 0
},
"fallbackToVisitorPlace": {
"type": "boolean",
"description": "When the query names no place and the search is not remote, search the signed-in person's saved country, or the country of an anonymous visitor's IP address."
}
}
}{
"title": "Search jobs",
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}get_job — Read a job posting
Read one posting in full by its id: description, requirements, pay, location and the employer's apply link. The title, summary and description are employer source text; licence requirements and eligibility remain unassessed. posting gives its age, when it was last seen live and closesAtLocal, the closing weekday and time.
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
}
}
}{
"title": "Read a job posting",
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}get_market_insights — Read the job market for a search
Summarize the live market for a role and place: how many openings match, the median listed pay, the most common work arrangement and the top requested skills, with how the request was understood. Takes a query and the same filters as search_jobs.
{
"type": "object",
"required": [
"query"
],
"properties": {
"query": {
"type": "string",
"maxLength": 300,
"minLength": 3
},
"locale": {
"type": "string",
"maxLength": 8
},
"filters": {
"type": "object",
"properties": {
"currency": {
"anyOf": [
{
"type": "string",
"maxLength": 5
},
{
"type": "null"
}
]
},
"hybridOk": {
"type": [
"boolean",
"null"
]
},
"industry": {
"anyOf": [
{
"type": "array",
"items": {
"type": "string",
"maxLength": 80
}
},
{
"type": "null"
}
]
},
"jobTitle": {
"anyOf": [
{
"type": "string",
"maxLength": 300
},
{
"type": "null"
}
]
},
"jobTypes": {
"anyOf": [
{
"type": "array",
"items": {
"enum": [
"FULL_TIME",
"PART_TIME",
"INTERNSHIP",
"CONTRACT",
"TEMPORARY",
"FREELANCE",
"APPRENTICESHIP",
"PHD",
"OTHER"
],
"type": "string"
},
"maxItems": 9
},
{
"type": "null"
}
]
},
"postedOn": {
"anyOf": [
{
"type": "string",
"maxLength": 10
},
{
"type": "null"
}
]
},
"remoteOk": {
"type": [
"boolean",
"null"
]
},
"locations": {
"anyOf": [
{
"type": "array",
"items": {
"type": "object",
"properties": {
"city": {
"type": "string"
},
"label": {
"type": "string"
},
"osmId": {
"type": "string"
},
"state": {
"type": "string"
},
"country": {
"type": "string"
},
"continent": {
"type": "string"
},
"proximity": {
"enum": [
"primary",
"nearby"
],
"type": "string"
},
"distanceMi": {
"type": "number",
"minimum": 0
},
"coordinates": {
"type": "object",
"required": [
"lon",
"lat"
],
"properties": {
"lat": {
"type": "number"
},
"lon": {
"type": "number"
}
}
},
"unstructured": {
"type": "string"
}
}
}
},
{
"type": "null"
}
]
},
"minSalary": {
"anyOf": [
{
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991
},
{
"type": "null"
}
]
},
"jobCategory": {
"anyOf": [
{
"type": "string",
"maxLength": 100
},
{
"type": "null"
}
]
},
"fundingStage": {
"anyOf": [
{
"type": "array",
"items": {
"type": "string"
}
},
{
"type": "null"
}
]
},
"searchPhrases": {
"anyOf": [
{
"type": "array",
"items": {
"type": "string",
"maxLength": 500
}
},
{
"type": "null"
}
]
},
"titleContains": {
"anyOf": [
{
"type": "array",
"items": {
"type": "string",
"maxLength": 500
}
},
{
"type": "null"
}
]
},
"titleExcludes": {
"anyOf": [
{
"type": "array",
"items": {
"type": "string",
"maxLength": 80
}
},
{
"type": "null"
}
]
},
"salaryListedOnly": {
"type": [
"boolean",
"null"
]
},
"strictTitleMatch": {
"type": [
"boolean",
"null"
]
},
"titleExcludePhrases": {
"anyOf": [
{
"type": "array",
"items": {
"type": "string",
"maxLength": 80
}
},
{
"type": "null"
}
]
},
"titleIncludePhrases": {
"anyOf": [
{
"type": "array",
"items": {
"type": "string",
"maxLength": 80
}
},
{
"type": "null"
}
]
}
}
},
"commuteRadiusMiles": {
"type": "number",
"maximum": 100,
"minimum": 0
},
"fallbackToVisitorPlace": {
"type": "boolean",
"description": "When the query names no place and the search is not remote, search the signed-in person's saved country, or the country of an anonymous visitor's IP address."
}
}
}{
"title": "Read the job market for a search",
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}get_company — Read a company
Read an employer's profile by its slug (companySlug on a job): what it does, size, observed pay bands, work arrangement, benefits, recent events and how it is hiring. hiring.definitions says what each hiring number measures: medianOpenPostingAgeDays is the age of open listings, not time to fill, and removedRoles30d counts postings taken down, not roles filled. Its page is https://www.metaintro.com/company/<slug>.
{
"type": "object",
"required": [
"slug"
],
"properties": {
"slug": {
"type": "string",
"maxLength": 80,
"minLength": 1
}
}
}{
"title": "Read a company",
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}list_company_jobs — List a company's open jobs
List an employer's open jobs by its slug, newest first, as compact cards with posting age and the employer's title and summary as source text; read one in full with get_job. Pages are cut to fit the response size, so continue with nextCursor until it is null.
{
"type": "object",
"required": [
"slug"
],
"properties": {
"slug": {
"type": "string",
"maxLength": 80,
"minLength": 1
},
"limit": {
"type": "integer",
"maximum": 50,
"minimum": 1
},
"cursor": {
"type": "integer",
"maximum": 1000,
"minimum": 0
}
}
}{
"title": "List a company's open jobs",
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}find_similar_jobs — Find similar jobs
More openings like one job, by its id: the same kind of role in the same place (or remote, when the job is remote), as up to 10 cards. Use it when a job is closed, a near miss, or the person wants more like it.
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"limit": {
"type": "integer",
"default": 6,
"maximum": 10,
"minimum": 1
}
}
}{
"title": "Find similar jobs",
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}get_local_demand — Read local job demand
Read which kinds of roles are hiring most in a place (city, region, country): open jobs by role category, with total open jobs, employers and sectors. When a place has too few role types it widens to the region, the country or worldwide; scope and locationLabel say which. Use it when someone does not yet know what to look for.
{
"type": "object",
"properties": {
"city": {
"type": "string",
"maxLength": 120
},
"limit": {
"type": "integer",
"maximum": 12,
"minimum": 1
},
"region": {
"type": "string",
"maxLength": 120
},
"country": {
"type": "string",
"maxLength": 120
}
}
}{
"title": "Read local job demand",
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}Prompts
2 advertised
find_jobs_that_fit — Find jobs that fit
A short list of live jobs that fit what you want, with what still needs checking.
- role
- The job you want. (required)
- location
- Where, or remote.
explore_careers — Explore jobs near me
What is hiring where you live, and which of those roles suit you.
- location
- A city, region or country. (required)
Resources
1 advertised
job-cards — Job cards
Shows Metaintro job results as cards.
ui://metaintro/job-cards-v1.html90-day uptime
A lightweight connection check about every six hours, sampled on hosts with many listings. It shows the server answered, not that its tools work.
- 2026-11-07: 1 of 1 checks answered
30-day availability
Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.
- Successful checks
- 1 of 1 (100%)
- Average latency
- 1018 ms
- 95th percentile latency
- 1018 ms
Maintenance history
Public check and source-refresh events. Editorial and ownership records remain private.
- · probe · passed · 1018 ms · metadata changed · 7 tool(s), 1 resource(s), 2 prompt(s); warnings: Advertises resources/templates/list but does not implement it
Connect from your client
Each snippet registers the same endpoint; pick the client you use.
Claude Code
claude mcp add --transport http metaintro-mcp https://www.metaintro.com/api/mcp/publicCodex
codex mcp add metaintro-mcp --url https://www.metaintro.com/api/mcp/publicCursor
{
"mcpServers": {
"metaintro-mcp": {
"url": "https://www.metaintro.com/api/mcp/public"
}
}
}Cline
{
"mcpServers": {
"metaintro-mcp": {
"type": "streamableHttp",
"url": "https://www.metaintro.com/api/mcp/public",
"disabled": false
}
}
}VS Code
{
"servers": {
"metaintro-mcp": {
"type": "http",
"url": "https://www.metaintro.com/api/mcp/public"
}
}
}Gemini CLI
gemini mcp add --transport http metaintro-mcp https://www.metaintro.com/api/mcp/publicClaude Desktop
https://www.metaintro.com/api/mcp/publicWindsurf
{
"mcpServers": {
"metaintro-mcp": {
"serverUrl": "https://www.metaintro.com/api/mcp/public"
}
}
}Let your agent find its tools
Find servers like Metaintro MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.
Other productivity and knowledge servers
Do you run Metaintro MCP?
Prove ownership with a DNS record, a well-known file, or your Official MCP Registry entry, and your edits publish immediately. Proofs are re-checked weekly; admins can still hide or remove a listing.