web3-jobs-mcp
Provides repository access for installation and setup of the Web3 Jobs MCP server via Git clone from the kukapay/web3-jobs-mcp repository.
Formats job listings as structured Markdown content with details including job ID, title, company, location, remote status, publication date, and application links.
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., "@web3-jobs-mcpfind 5 remote blockchain developer jobs in the United States"
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.
Web3 Jobs MCP Server
An MCP server that provides AI agents with real-time access to curated Web3 jobs from web3.career, enabling intelligent job discovery and career insights.
Features
Job Query Tool: Filter Web3 jobs by:
Remote status (
remote=Truefor remote-only jobs)Country (e.g.,
"United States", case-insensitive)Job tag (e.g.,
"react","blockchain", case-insensitive)Limit (1–100 jobs, default 50)
Markdown Output: Returns job listings as a formatted Markdown list with:
Job ID, Title, Company, Location, Remote status
Published At (from
date_epoch, formatted asYYYY-MM-DD)Apply URL (clickable link to web3.career)
Description (plain text, truncated to 100 characters)
Search Prompt: Generates user-friendly job search queries based on role and optional location.
Related MCP server: thegraph-mcp
Prerequisites
Python 3.10+
A web3.career API token (request at web3.career/web3-jobs-api)
uv for dependency management (recommended)
Installation
Clone the Repository:
git clone https://github.com/kukapay/web3-jobs-mcp.git cd web3-jobs-mcpInstall Dependencies: Using
uv:uv syncAlternatively, with
pip:pip install mcp[cli] python-dotenvInstalling to Claude Desktop:
Install the server as a Claude Desktop application:
uv run mcp install cli.py --name "Web3 Jobs"Configuration file as a reference:
{ "mcpServers": { "Web3 Jobs": { "command": "uv", "args": [ "--directory", "/path/to/web3-jobs-mcp", "run", "main.py" ], "env": { "WEB3_CAREER_API_TOKEN", "your-api-token" }, } } }Replace
/path/to/web3-jobs-mcpwith your actual installation path, andyour-api-tokenwith your web3.career API token.
Usage
Running the Server
Start the server in development mode with the MCP Inspector:
uv run mcp dev main.pyThis opens a web interface for testing tools and prompts.
Alternatively, run directly:
uv run main.pyUsing the query_jobs Tool
In the MCP Inspector or a compatible client (e.g., Claude Desktop), call the query_jobs tool:
Example 1: Get 5 remote blockchain jobs:
query_jobs(remote=True, tag="blockchain", limit=5)Example 2: Get 10 jobs in the United States:
query_jobs(country="United States", limit=10)
Sample Output:
# Web3 Job Listings
- **Job ID**: 103945
- **Title**: Applied Crypto-Economics & Mechanism Design
- **Company**: Subzero Labs
- **Location**: Remote Remote Remote
- **Remote**: Yes
- **Published At**: 2025-06-01
- **Apply URL**: [Apply](https://web3.career/r/1QTOzATM__UVWHaa)
- **Description**: About Rialo We are a pioneering force in the decentralized finance (DeFi) space...
- **Job ID**: 103944
- **Title**: Blockchain Engineer
- **Company**: CryptoTech
- **Location**: Remote
- **Remote**: Yes
- **Published At**: 2025-05-31
- **Description**: Join our team to build cutting-edge blockchain solutions for global clients...
- **Apply URL**: [Apply](https://web3.career/r/2XYZabc123)
*Source: web3.career*Using the search_jobs_prompt
Generate a search prompt for a specific role and location:
/search_jobs_prompt role="blockchain developer" location="remote"This returns a prompt like:
Find Web3 jobs for a blockchain developer role in remote. Provide job titles, companies, locations, and application links from web3.career.License
This project is licensed under the MIT License. See the LICENSE file for details.
Available Tools
1 toolquery_jobsA
Query Web3 job listings from the web3.career API with optional filters.
Returns a Markdown-formatted list of jobs, including Job ID, Title, Company, Location,
Remote status, Published At date, Apply URL, and Description (always included).
Parameters:
remote (Optional[bool]): Filter for remote jobs. Set to True for remote-only,
False for non-remote, or None for no filter. Defaults to None.
country (Optional[str]): Filter by country (e.g., "United States", "Canada").
Case-insensitive, spaces are converted to hyphens (e.g., "united-states").
Defaults to None (no country filter).
tag (Optional[str]): Filter by job tag (e.g., "react", "blockchain").
Case-insensitive. Defaults to None (no tag filter).
limit (Optional[int]): Maximum number of jobs to return. Must be between 1 and 100.
Defaults to 50. Raises ValueError if limit exceeds 100.
ctx (Context): MCP context for logging and internal use. Automatically provided
by the MCP framework. Defaults to None.
Returns:
str: A Markdown string containing a list of job listings with the specified fields.
Notes:
- Descriptions are always included (show_description is hardcoded to True),
truncated to 100 characters, and have HTML tags removed.
- Published At is derived from the 'date_epoch' field, formatted as YYYY-MM-DD.
- Apply URL is included as a clickable Markdown link for each job.
- Source is credited to web3.career per API terms.
| Name | Required | Description | Default |
|---|---|---|---|
| country | No | ||
| limit | No | ||
| remote | No | ||
| tag | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes key behaviors: the return format (Markdown-formatted list), data processing (descriptions truncated to 100 characters, HTML tags removed, date formatting), and constraints (limit must be 1-100, raises ValueError if exceeded). It also notes source attribution per API terms. However, it doesn't cover potential errors beyond limit validation or rate limits, leaving minor 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?
The description is well-structured with clear sections (purpose, parameters, returns, notes) and front-loaded key information. It is appropriately sized for the tool's complexity, but some sentences could be more concise (e.g., the parameter explanations are detailed but slightly verbose). Overall, it earns its place with useful details without excessive fluff.
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 moderate complexity (4 parameters, no annotations, no output schema), the description is largely complete. It covers purpose, parameters, return format, and behavioral notes. However, it lacks explicit error handling details beyond the 'limit' validation and doesn't mention pagination or API rate limits, which could be relevant for a query tool. The absence of an output schema is mitigated by describing the return value.
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 schema description coverage is 0%, so the description must fully compensate. It provides detailed semantics for all 4 parameters: explains what each filter does (e.g., 'remote' for remote jobs, 'country' with case-insensitivity and formatting rules), specifies defaults, and includes validation for 'limit'. The 'ctx' parameter is noted as automatically provided, clarifying its internal use. This adds significant value beyond the bare 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's purpose: 'Query Web3 job listings from the web3.career API with optional filters.' It specifies the verb ('query'), resource ('Web3 job listings'), and source ('web3.career API'), making it highly specific. Since there are no sibling tools, no differentiation is needed, but the description stands alone as complete.
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 through the mention of 'optional filters' and the detailed parameter explanations, suggesting when to use specific filters. However, it lacks explicit guidance on when to use this tool versus alternatives (e.g., for job searches vs. other data queries), and there are no sibling tools to compare against. This results in implied but not explicit usage guidelines.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
With only one tool, there is no possibility of ambiguity or confusion between tools. The single tool has a clear, distinct purpose that cannot be mistaken for any other functionality within this server.
The single tool follows a consistent verb_noun naming pattern (query_jobs). With only one tool, naming consistency is inherently perfect as there are no other tools to compare against or create inconsistencies with.
A single tool is too few for a server focused on Web3 job listings. While the query_jobs tool provides comprehensive querying functionality, there are obvious gaps in the surface area that would require additional tools to cover a complete job search domain.
The server is severely incomplete for Web3 job operations. While query_jobs provides robust filtering capabilities, there are no tools for viewing individual job details, applying to jobs, saving favorites, or managing user profiles. The single tool represents only a fraction of what would be expected in a job search domain.
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
Official MCP server for Agentwork — delegate tasks to AI agents with human-in-the-loop
Capability registry for the agentic economy. Semantic search over verified MCP server listings.
Hosted MCP server for live public-data APIs and Skills for AI agents.
Public MCP server for discovering open jobs. Search, filter, and get application links.
Related MCP Servers
- AlicenseBqualityFmaintenanceAn MCP server that provides cryptocurrency project data to AI agents11MIT
- AlicenseAqualityDmaintenanceAn MCP server that powers AI agents with indexed blockchain data from The Graph.3MIT
- AlicenseAqualityDmaintenanceAn MCP server that provides real-time web search to AI agents via a pay-per-search USDC microtransaction system.5671MIT
- AlicenseNot gradedqualityCmaintenanceAn MCP server that allows AI agents to publish real-world tasks, match workers, manage progress, and handle compliant payments via standardized tools and resources.211MIT
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/kukapay/web3-jobs-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server