Data source: CORDIS (cordis.europa.eu)
Overview
CORDIS (EU Research Projects) wraps CORDIS (cordis.europa.eu), handling authentication, pagination, and rate limits for you. This tutorial covers all 5 tools with working code examples you can copy and run.
Prerequisites
- Sign up at https://context.gnist.ai/signup for a free API key (100 calls/day).
- Choose your integration method: MCP protocol or REST API.
Connect via MCP
Add to your MCP client config (Claude Desktop, Cursor, etc.):
{
"mcpServers": {
"gnist-cordis": {
"url": "https://context.gnist.ai/mcp/cordis/",
"headers": {
"Gnist-API-Key": "YOUR_API_KEY"
}
}
}
}
Tools (5)
search_projects
Search EU-funded research projects by keyword. Searches over 1 million projects funded by the European Union through Horizon Europe, Horizon 2020, FP7, and earlier framework programmes. Returns project details including title, acronym, funding, dates, and coordinating country. Args: query: Search term to match against project titles and descriptions. programme: Optional filter for EU framework programme. country: Optional filter for coordinating country. limit: Number of results to return (1-50, default 20). Returns: List of matching projects with reference, title, funding, and link.
| Parameter | Type | Required | Description |
|---|---|---|---|
query | string | required | Search term for EU research projects (e.g. "quantum computing", "climate adaptation", "cancer biomarkers", "smart cities"). |
programme | any | optional | Filter by EU framework programme: "horizon-europe", "horizon-2020", "fp7", "fp6", "fp5". Omit for all. |
country | any | optional | Filter by coordinating country (e.g. "Germany", "France", "Norway"). |
limit | integer | optional | Number of results to return (1-50, default 20). (default: 20) |
curl -X POST "https://context.gnist.ai/mcp/cordis/" \
-H "Content-Type: application/json" \
-H "Gnist-API-Key: YOUR_API_KEY" \
-d '{"jsonrpc": "2.0", "method": "tools/call", "id": 1, "params": {"name": "search_projects", "arguments": {"query": "quantum computing"}}}'
import httpx
resp = httpx.post(
"https://context.gnist.ai/mcp/cordis/",
headers={"Gnist-API-Key": "YOUR_API_KEY"},
json={'id': 1,
'jsonrpc': '2.0',
'method': 'tools/call',
'params': {'arguments': {'query': 'quantum computing'},
'name': 'search_projects'}},
)
print(resp.json())
get_project
Get an EU research project by its grant reference number. Returns detailed information about a specific EU-funded research project including title, abstract, funding amounts, participants, programme, dates, and a link to the CORDIS page. Args: reference: Grant agreement reference number. Returns: Project details including title, acronym, funding, and CORDIS URL.
| Parameter | Type | Required | Description |
|---|---|---|---|
reference | string | required | EU project grant reference number (e.g. "101057437", "964363"). |
curl -X POST "https://context.gnist.ai/mcp/cordis/" \
-H "Content-Type: application/json" \
-H "Gnist-API-Key: YOUR_API_KEY" \
-d '{"jsonrpc": "2.0", "method": "tools/call", "id": 1, "params": {"name": "get_project", "arguments": {"reference": "101057437"}}}'
import httpx
resp = httpx.post(
"https://context.gnist.ai/mcp/cordis/",
headers={"Gnist-API-Key": "YOUR_API_KEY"},
json={'id': 1,
'jsonrpc': '2.0',
'method': 'tools/call',
'params': {'arguments': {'reference': '101057437'}, 'name': 'get_project'}},
)
print(resp.json())
search_by_programme
List projects from a specific EU framework programme. Browse the latest projects funded under Horizon Europe, Horizon 2020, FP7, or earlier framework programmes. Returns the most recently started projects by default. Args: programme: EU framework programme identifier. limit: Number of results to return (1-50, default 20). Returns: List of projects from the specified programme.
| Parameter | Type | Required | Description |
|---|---|---|---|
programme | string | required | EU framework programme: "horizon-europe", "horizon-2020", "fp7", "fp6", "fp5". |
limit | integer | optional | Number of results to return (1-50, default 20). (default: 20) |
curl -X POST "https://context.gnist.ai/mcp/cordis/" \
-H "Content-Type: application/json" \
-H "Gnist-API-Key: YOUR_API_KEY" \
-d '{"jsonrpc": "2.0", "method": "tools/call", "id": 1, "params": {"name": "search_by_programme", "arguments": {"programme": "example"}}}'
import httpx
resp = httpx.post(
"https://context.gnist.ai/mcp/cordis/",
headers={"Gnist-API-Key": "YOUR_API_KEY"},
json={'id': 1,
'jsonrpc': '2.0',
'method': 'tools/call',
'params': {'arguments': {'programme': 'example'},
'name': 'search_by_programme'}},
)
print(resp.json())
get_recent_projects
Get the most recently started EU research projects. Returns the latest EU-funded research projects across all framework programmes, sorted by start date. Useful for monitoring new EU research initiatives and funding trends. Args: limit: Number of results to return (1-50, default 20). Returns: List of recent projects with reference, title, funding, and link.
| Parameter | Type | Required | Description |
|---|---|---|---|
limit | integer | optional | Number of results to return (1-50, default 20). (default: 20) |
curl -X POST "https://context.gnist.ai/mcp/cordis/" \
-H "Content-Type: application/json" \
-H "Gnist-API-Key: YOUR_API_KEY" \
-d '{"jsonrpc": "2.0", "method": "tools/call", "id": 1, "params": {"name": "get_recent_projects", "arguments": {"limit": 20}}}'
import httpx
resp = httpx.post(
"https://context.gnist.ai/mcp/cordis/",
headers={"Gnist-API-Key": "YOUR_API_KEY"},
json={'id': 1,
'jsonrpc': '2.0',
'method': 'tools/call',
'params': {'arguments': {'limit': 20}, 'name': 'get_recent_projects'}},
)
print(resp.json())
report_feedback
Report a bug, feature request, or general feedback for this data source. Use this when something doesn't work as expected, when you'd like a new feature, or when you have suggestions for improvement. Args: feedback: Describe the issue or suggestion. feedback_type: One of 'bug', 'feature_request', or 'general'.
| Parameter | Type | Required | Description |
|---|---|---|---|
feedback | string | required | |
feedback_type | string | optional | (default: general) |
curl -X POST "https://context.gnist.ai/mcp/cordis/" \
-H "Content-Type: application/json" \
-H "Gnist-API-Key: YOUR_API_KEY" \
-d '{"jsonrpc": "2.0", "method": "tools/call", "id": 1, "params": {"name": "report_feedback", "arguments": {"feedback": "example"}}}'
import httpx
resp = httpx.post(
"https://context.gnist.ai/mcp/cordis/",
headers={"Gnist-API-Key": "YOUR_API_KEY"},
json={'id': 1,
'jsonrpc': '2.0',
'method': 'tools/call',
'params': {'arguments': {'feedback': 'example'}, 'name': 'report_feedback'}},
)
print(resp.json())
Common Patterns
Use
search_projects to find items, then get_project to get full details. This two-step pattern is common for exploring data before drilling down.Several tools support
limit, offset, or page parameters. Start with small limits during development, then increase for production queries.FAQ
What data does CORDIS (EU Research Projects) provide?
EU-funded research projects and grants — search Horizon Europe, Horizon 2020, and earlier framework programmes covering 1M+ projects with funding details, participants, and results. It exposes 5 tools: search_projects, get_project, search_by_programme, get_recent_projects, report_feedback.
What do I need to get started?
A Gnist API key (free tier: 100 calls/day). Sign up at https://context.gnist.ai/signup.
What format does the CORDIS (EU Research Projects) API return?
JSON, via either MCP protocol (JSON-RPC 2.0) or REST API.