
Opportunity MCP
io.github.revolutionarybukhariPublished by GitHub account revolutionarybukhariv0.1.1Updated Oct 24, 2026
Search youth opportunities (scholarships, fellowships, internships) from any AI assistant.
Overview
A local MCP server that lets an AI assistant search an indexed catalog of youth opportunities such as scholarships, fellowships and internships.
- What you can do
- Search the indexed opportunities by keyword, with filters for type, funding and deadline, and open full details for a single record by ID. List the newest opportunities across all sources, or those closing within a chosen number of days. Inspect the indexed sources with their item counts and last-refresh times. Re-fetch sources on demand, optionally limited to one site.
- When to use it
- Useful when a student or adviser wants to find scholarships, fellowships, internships, conferences or exchange programs through conversation instead of browsing several aggregator sites, and to keep track of upcoming deadlines.
- Requirements
- Runs locally over stdio as a PyPI package, so Python and pip are needed (or uvx for a zero-install launch). A one-off index build command must be run before first use. Network access is needed for the periodic refresh of source sites.
Installation
In SourceWeft
- Open Opportunity MCP in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
README
Opportunity MCP
A Model Context Protocol server that lets any AI assistant search youth opportunities — scholarships, fellowships, internships, conferences, and exchange programs — aggregated live from leading opportunity-discovery sites.
[PyPI version] [Python] [License: MIT] [Tests] [Refresh cron] [MCP Registry]
Status: alpha (
v0.1.x). Schema, tool surface, and source list may change as adapters mature. Pin to a minor version in production.
Overview
Students who depend on third-party scholarship-aggregator sites typically open ten or more tabs, sift through dozens of irrelevant posts, and copy deadlines into a personal spreadsheet — only to miss the application window because no aggregator offers reliable deadline tracking. Opportunity MCP collapses that workflow into a single conversational query.
You: Find fully-funded master's scholarships in Europe with deadlines in the next 60 days, eligible for Pakistani citizens.
Claude: (Returns a deduplicated, structured list pulled live from the indexed sources, sorted by deadline, each linking back to the original article.)
The server runs locally over stdio, ships an SQLite + FTS5 index that refreshes every six hours via CI, and is distributed through PyPI, the official MCP Registry, and Smithery.
Distribution channels
Installation
Claude Desktop
Add the following to claude_desktop_config.json:
Restart Claude Desktop. The six tools below become available to the model.
Cursor, Windsurf, Continue, and other MCP clients
Most clients use the same mcpServers shape. Point the command at opportunity-mcp (after pip install) or use uvx for zero-install:
Smithery (one-click install)
https://smithery.ai/server/sayedhusnainhader/opportunity-mcp — Smithery handles the install command for you.
From source
Tools
The server exposes six tools. Each accepts JSON arguments and returns Pydantic-typed results.
type is one of scholarship, fellowship, internship, conference, exchange, competition, grant, award, or other.
Indexed sources
Verified live against each site's RSS feed.
Per-source robots.txt compliance, ToS notes, and CI quirks are documented in docs/SOURCES.md.
Example prompts
Architecture
Two clean separations of concern:
- Adapters know how to read one site and produce raw
Opportunityobjects (Pydantic-validated). - The query engine knows nothing about sites — it searches a normalized index.
Adding a new source is typically a fifty-line pull request. See docs/ADAPTER_GUIDE.md. Full architecture rationale is in docs/ARCHITECTURE.md.
Privacy & ethics
- No user tracking. All queries are processed locally; nothing leaves the user's machine except the periodic source-site refresh.
- All indexed data is public. Summaries are capped at 500 characters and every record links back to the originating article.
- Polite identification. The HTTP
User-Agentincludes the project URL so site owners can reach us directly. - Conservative refresh cadence. Sources are polled at most every six hours, via CI — never on user query.
- Source removals on request are honored within 24 hours, with no negotiation.
robots.txtis respected by every adapter prior to fetching.
Roadmap
- Phase 2 — country-, level-, and language-aware extraction (currently delegated to the AI client).
- Phase 3 — first HTML adapter (Youth Opportunities), broader Tier-2/Tier-4 source coverage.
- Phase 4 — hosted Streamable-HTTP endpoint for clients that prefer remote MCP servers.
- Phase 5 — optional weekly digest by saved profile.
Open issues with the add a source label are good first contributions.
Contributing
Pull requests are welcome. The fastest way to help is to add a source we do not yet index — read docs/ADAPTER_GUIDE.md and open a PR. See docs/CONTRIBUTING.md for development setup, testing conventions, and the code-of-conduct expectations.
License
MIT © Opportunity MCP Contributors.
Source: README.md at commit 41d1b3e
Tools
0Version history
1- v0.1.1LatestSep 16, 2026
Score
50% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 days25 pts
Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.
- Auth declared10 pts
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts