Server data from the Official MCP Registry
Search youth opportunities (scholarships, fellowships, internships) from any AI assistant.
Search youth opportunities (scholarships, fellowships, internships) from any AI assistant.
Opportunity MCP is a well-structured, purpose-built MCP server for searching youth opportunities from public sources. The codebase exhibits strong security practices: no hardcoded credentials, proper input validation, safe database queries with parameterization, and conservative permissions aligned with its function. The server performs read-only operations on a local SQLite index and makes outbound HTTP requests only during explicit refresh operations via CI — never on user query. Minor code quality observations do not materially impact security. Supply chain analysis found 3 known vulnerabilities in dependencies (0 critical, 3 high severity). Package verification found 1 issue (1 critical, 0 high severity).
7 files analyzed · 8 issues found
Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.
This plugin requests these system permissions. Most are normal for its category.
Unverified package source
We couldn't verify that the installable package matches the reviewed source code. Proceed with caution.
Add this to your MCP configuration file:
{
"mcpServers": {
"io-github-revolutionarybukhari-opportunity-mcp": {
"args": [
"opportunity-mcp"
],
"command": "uvx"
}
}
}From the project's GitHub README.
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.
Status: alpha (
v0.1.x). Schema, tool surface, and source list may change as adapters mature. Pin to a minor version in production.
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.
| Channel | Identifier | Status |
|---|---|---|
| PyPI | opportunity-mcp | ✅ live |
| MCP Registry | io.github.revolutionarybukhari/opportunity-mcp | ✅ published |
| Smithery | sayedhusnainhader/opportunity-mcp | ✅ published |
| GitHub | revolutionarybukhari/opportunity-mcp | source of truth |
| GitHub Releases | index-N snapshots of the SQLite DB, refreshed every 6h | auto-published by CI |
pip install opportunity-mcp
opportunity-mcp-refresh # build the local index (one-off, ~30 seconds)
Add the following to claude_desktop_config.json:
{
"mcpServers": {
"opportunities": {
"command": "opportunity-mcp"
}
}
}
Restart Claude Desktop. The six tools below become available to the model.
Most clients use the same mcpServers shape. Point the command at opportunity-mcp (after pip install) or use uvx for zero-install:
{
"mcpServers": {
"opportunities": {
"command": "uvx",
"args": ["opportunity-mcp"]
}
}
}
https://smithery.ai/server/sayedhusnainhader/opportunity-mcp — Smithery handles the install command for you.
git clone https://github.com/revolutionarybukhari/opportunity-mcp
cd opportunity-mcp
uv sync # or: pip install -e ".[dev]"
uv run opportunity-mcp-refresh
uv run opportunity-mcp # speaks MCP over stdio
The server exposes six tools. Each accepts JSON arguments and returns Pydantic-typed results.
| Tool | Signature | Description |
|---|---|---|
search_opportunities | (query, type?, funded_only?, deadline_before?, limit=20) | Full-text search across all indexed opportunities with optional filters. |
get_opportunity | (id) | Retrieve full details for a single opportunity by its ID. |
list_latest | (type?, limit=20) | Newest opportunities across all sources, sorted by post date. |
list_upcoming_deadlines | (within_days=30, type?) | Opportunities closing within N days, sorted by deadline. |
list_sources | () | List indexed sources, item counts, and last-refresh timestamps. |
refresh_index | (source?) | Re-fetch sources on demand. Optional source argument limits the refresh to one site. |
type is one of scholarship, fellowship, internship, conference, exchange, competition, grant, award, or other.
Verified live against each site's RSS feed.
| Source | Mechanism | Status |
|---|---|---|
| Opportunities Corners | RSS | ✅ live |
| Opportunities for Youth | RSS | ✅ live |
| Opportunity Desk | RSS | ✅ live |
| Scholarships Corner | RSS | ✅ live |
| Opportunities Circle | RSS | ✅ live |
| Opportunities for Africans | RSS | ✅ live |
| Scholars4Dev | RSS | ✅ adapter live (feed currently empty upstream) |
| Youth Opportunities | HTML | planned |
| After School Africa | HTML | planned |
Per-source robots.txt compliance, ToS notes, and CI quirks are documented in docs/SOURCES.md.
Find fully-funded master's scholarships in Europe with deadlines in the next 60 days.
What conferences are happening in Africa in the next three months?
List the ten newest internships indexed today.
Show me everything closing in the next seven days that an undergraduate could apply to.
Get full details for opportunity 7733b95a81e3239d.
AI client ──MCP──▶ FastMCP server ──▶ SQLite + FTS5 ◀── refresh job ──▶ source adapters ──▶ opportunity sites
Two clean separations of concern:
Opportunity objects (Pydantic-validated).Adding a new source is typically a fifty-line pull request. See docs/ADAPTER_GUIDE.md. Full architecture rationale is in docs/ARCHITECTURE.md.
User-Agent includes the project URL so site owners can reach us directly.robots.txt is respected by every adapter prior to fetching.Open issues with the add a source label are good first contributions.
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.
git clone https://github.com/revolutionarybukhari/opportunity-mcp
cd opportunity-mcp
uv sync
uv run pytest
uv run ruff check .
MIT © Opportunity MCP Contributors.
Be the first to review this server!
by Modelcontextprotocol · Developer Tools
Read, search, and manipulate Git repositories programmatically
by Toleno · Developer Tools
Toleno Network MCP Server — Manage your Toleno mining account with Claude AI using natural language.
by mcp-marketplace · Developer Tools
Create, build, and publish Python MCP servers to PyPI — conversationally.
by Microsoft · Content & Media
Convert files (PDF, Word, Excel, images, audio) to Markdown for LLM consumption
by mcp-marketplace · Developer Tools
Scaffold, build, and publish TypeScript MCP servers to npm — conversationally
by Taylorwilsdon · Productivity
Control Gmail, Calendar, Docs, Sheets, Drive, and more from your AI