Skip to main content
Glama

OParl MCP Server

by jtwolfe
oparl_openapi.jsonโ€ข34.1 kB
{ "openapi": "3.0.3", "info": { "title": "OParl API", "description": "Standardized interface for parliamentary information systems", "version": "1.1.0", "contact": { "name": "OParl Initiative", "url": "https://dev.oparl.org" } }, "servers": [ { "url": "https://api.oparl.org", "description": "OParl API Server" } ], "paths": { "/system": { "get": { "tags": ["System"], "summary": "Get system information", "description": "Retrieve the root system information", "operationId": "getSystem", "responses": { "200": { "description": "System information", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/System" } } } } } } }, "/body": { "get": { "tags": ["Body"], "summary": "List all bodies", "description": "Retrieve a list of all parliamentary bodies", "operationId": "listBodies", "parameters": [ { "name": "limit", "in": "query", "description": "Maximum number of results to return", "schema": { "type": "integer", "minimum": 1, "maximum": 1000, "default": 20 } }, { "name": "offset", "in": "query", "description": "Number of results to skip", "schema": { "type": "integer", "minimum": 0, "default": 0 } } ], "responses": { "200": { "description": "List of bodies", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/components/schemas/Body" } }, "pagination": { "$ref": "#/components/schemas/Pagination" } } } } } } } } }, "/body/{bodyId}": { "get": { "tags": ["Body"], "summary": "Get body by ID", "description": "Retrieve a specific parliamentary body", "operationId": "getBody", "parameters": [ { "name": "bodyId", "in": "path", "required": true, "description": "Body identifier", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Body information", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Body" } } } }, "404": { "description": "Body not found" } } } }, "/body/{bodyId}/organization": { "get": { "tags": ["Organization"], "summary": "List organizations for a body", "description": "Retrieve organizations associated with a specific body", "operationId": "listBodyOrganizations", "parameters": [ { "name": "bodyId", "in": "path", "required": true, "description": "Body identifier", "schema": { "type": "string" } }, { "name": "limit", "in": "query", "description": "Maximum number of results to return", "schema": { "type": "integer", "minimum": 1, "maximum": 1000, "default": 20 } }, { "name": "offset", "in": "query", "description": "Number of results to skip", "schema": { "type": "integer", "minimum": 0, "default": 0 } } ], "responses": { "200": { "description": "List of organizations", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/components/schemas/Organization" } }, "pagination": { "$ref": "#/components/schemas/Pagination" } } } } } } } } }, "/body/{bodyId}/person": { "get": { "tags": ["Person"], "summary": "List persons for a body", "description": "Retrieve persons associated with a specific body", "operationId": "listBodyPersons", "parameters": [ { "name": "bodyId", "in": "path", "required": true, "description": "Body identifier", "schema": { "type": "string" } }, { "name": "limit", "in": "query", "description": "Maximum number of results to return", "schema": { "type": "integer", "minimum": 1, "maximum": 1000, "default": 20 } }, { "name": "offset", "in": "query", "description": "Number of results to skip", "schema": { "type": "integer", "minimum": 0, "default": 0 } } ], "responses": { "200": { "description": "List of persons", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/components/schemas/Person" } }, "pagination": { "$ref": "#/components/schemas/Pagination" } } } } } } } } }, "/body/{bodyId}/meeting": { "get": { "tags": ["Meeting"], "summary": "List meetings for a body", "description": "Retrieve meetings associated with a specific body", "operationId": "listBodyMeetings", "parameters": [ { "name": "bodyId", "in": "path", "required": true, "description": "Body identifier", "schema": { "type": "string" } }, { "name": "limit", "in": "query", "description": "Maximum number of results to return", "schema": { "type": "integer", "minimum": 1, "maximum": 1000, "default": 20 } }, { "name": "offset", "in": "query", "description": "Number of results to skip", "schema": { "type": "integer", "minimum": 0, "default": 0 } }, { "name": "start", "in": "query", "description": "Start date for filtering meetings", "schema": { "type": "string", "format": "date" } }, { "name": "end", "in": "query", "description": "End date for filtering meetings", "schema": { "type": "string", "format": "date" } } ], "responses": { "200": { "description": "List of meetings", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/components/schemas/Meeting" } }, "pagination": { "$ref": "#/components/schemas/Pagination" } } } } } } } } }, "/body/{bodyId}/paper": { "get": { "tags": ["Paper"], "summary": "List papers for a body", "description": "Retrieve papers/documents associated with a specific body", "operationId": "listBodyPapers", "parameters": [ { "name": "bodyId", "in": "path", "required": true, "description": "Body identifier", "schema": { "type": "string" } }, { "name": "limit", "in": "query", "description": "Maximum number of results to return", "schema": { "type": "integer", "minimum": 1, "maximum": 1000, "default": 20 } }, { "name": "offset", "in": "query", "description": "Number of results to skip", "schema": { "type": "integer", "minimum": 0, "default": 0 } }, { "name": "search", "in": "query", "description": "Search term for filtering papers", "schema": { "type": "string" } } ], "responses": { "200": { "description": "List of papers", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/components/schemas/Paper" } }, "pagination": { "$ref": "#/components/schemas/Pagination" } } } } } } } } }, "/meeting/{meetingId}": { "get": { "tags": ["Meeting"], "summary": "Get meeting by ID", "description": "Retrieve a specific meeting", "operationId": "getMeeting", "parameters": [ { "name": "meetingId", "in": "path", "required": true, "description": "Meeting identifier", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Meeting information", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Meeting" } } } }, "404": { "description": "Meeting not found" } } } }, "/meeting/{meetingId}/agendaItem": { "get": { "tags": ["AgendaItem"], "summary": "List agenda items for a meeting", "description": "Retrieve agenda items for a specific meeting", "operationId": "listMeetingAgendaItems", "parameters": [ { "name": "meetingId", "in": "path", "required": true, "description": "Meeting identifier", "schema": { "type": "string" } }, { "name": "limit", "in": "query", "description": "Maximum number of results to return", "schema": { "type": "integer", "minimum": 1, "maximum": 1000, "default": 20 } }, { "name": "offset", "in": "query", "description": "Number of results to skip", "schema": { "type": "integer", "minimum": 0, "default": 0 } } ], "responses": { "200": { "description": "List of agenda items", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/components/schemas/AgendaItem" } }, "pagination": { "$ref": "#/components/schemas/Pagination" } } } } } } } } }, "/paper/{paperId}": { "get": { "tags": ["Paper"], "summary": "Get paper by ID", "description": "Retrieve a specific paper/document", "operationId": "getPaper", "parameters": [ { "name": "paperId", "in": "path", "required": true, "description": "Paper identifier", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Paper information", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Paper" } } } }, "404": { "description": "Paper not found" } } } }, "/person/{personId}": { "get": { "tags": ["Person"], "summary": "Get person by ID", "description": "Retrieve a specific person", "operationId": "getPerson", "parameters": [ { "name": "personId", "in": "path", "required": true, "description": "Person identifier", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Person information", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Person" } } } }, "404": { "description": "Person not found" } } } }, "/organization/{organizationId}": { "get": { "tags": ["Organization"], "summary": "Get organization by ID", "description": "Retrieve a specific organization", "operationId": "getOrganization", "parameters": [ { "name": "organizationId", "in": "path", "required": true, "description": "Organization identifier", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Organization information", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Organization" } } } }, "404": { "description": "Organization not found" } } } } }, "components": { "schemas": { "System": { "type": "object", "properties": { "id": { "type": "string", "description": "Unique identifier for the system" }, "type": { "type": "string", "enum": ["https://schema.oparl.org/1.1/System"], "description": "Type identifier" }, "oparlVersion": { "type": "string", "description": "OParl version used by this system" }, "body": { "type": "string", "format": "uri", "description": "URL to the list of bodies" }, "name": { "type": "string", "description": "Name of the system" }, "website": { "type": "string", "format": "uri", "description": "Website of the system" }, "contactEmail": { "type": "string", "format": "email", "description": "Contact email address" }, "contactName": { "type": "string", "description": "Contact person name" }, "vendor": { "type": "string", "description": "Vendor of the system" }, "product": { "type": "string", "description": "Product name" }, "created": { "type": "string", "format": "date-time", "description": "Creation timestamp" }, "modified": { "type": "string", "format": "date-time", "description": "Last modification timestamp" } }, "required": ["id", "type", "oparlVersion", "body"] }, "Body": { "type": "object", "properties": { "id": { "type": "string", "description": "Unique identifier for the body" }, "type": { "type": "string", "enum": ["https://schema.oparl.org/1.1/Body"], "description": "Type identifier" }, "system": { "type": "string", "format": "uri", "description": "URL to the system" }, "name": { "type": "string", "description": "Name of the body" }, "shortName": { "type": "string", "description": "Short name or abbreviation" }, "website": { "type": "string", "format": "uri", "description": "Website of the body" }, "email": { "type": "string", "format": "email", "description": "Email address" }, "organization": { "type": "string", "format": "uri", "description": "URL to the list of organizations" }, "person": { "type": "string", "format": "uri", "description": "URL to the list of persons" }, "meeting": { "type": "string", "format": "uri", "description": "URL to the list of meetings" }, "paper": { "type": "string", "format": "uri", "description": "URL to the list of papers" }, "legislativeTerm": { "type": "array", "items": { "$ref": "#/components/schemas/LegislativeTerm" }, "description": "Legislative terms" }, "created": { "type": "string", "format": "date-time", "description": "Creation timestamp" }, "modified": { "type": "string", "format": "date-time", "description": "Last modification timestamp" } }, "required": ["id", "type", "system", "name"] }, "Organization": { "type": "object", "properties": { "id": { "type": "string", "description": "Unique identifier for the organization" }, "type": { "type": "string", "enum": ["https://schema.oparl.org/1.1/Organization"], "description": "Type identifier" }, "body": { "type": "string", "format": "uri", "description": "URL to the body" }, "name": { "type": "string", "description": "Name of the organization" }, "shortName": { "type": "string", "description": "Short name or abbreviation" }, "website": { "type": "string", "format": "uri", "description": "Website of the organization" }, "email": { "type": "string", "format": "email", "description": "Email address" }, "member": { "type": "array", "items": { "type": "string", "format": "uri" }, "description": "URLs to members" }, "meeting": { "type": "string", "format": "uri", "description": "URL to the list of meetings" }, "created": { "type": "string", "format": "date-time", "description": "Creation timestamp" }, "modified": { "type": "string", "format": "date-time", "description": "Last modification timestamp" } }, "required": ["id", "type", "body", "name"] }, "Person": { "type": "object", "properties": { "id": { "type": "string", "description": "Unique identifier for the person" }, "type": { "type": "string", "enum": ["https://schema.oparl.org/1.1/Person"], "description": "Type identifier" }, "body": { "type": "string", "format": "uri", "description": "URL to the body" }, "name": { "type": "string", "description": "Full name of the person" }, "familyName": { "type": "string", "description": "Family name" }, "givenName": { "type": "string", "description": "Given name" }, "title": { "type": "array", "items": { "type": "string" }, "description": "Academic or professional titles" }, "affiliation": { "type": "array", "items": { "type": "string", "format": "uri" }, "description": "URLs to organizations" }, "email": { "type": "string", "format": "email", "description": "Email address" }, "phone": { "type": "string", "description": "Phone number" }, "status": { "type": "string", "description": "Status of the person" }, "created": { "type": "string", "format": "date-time", "description": "Creation timestamp" }, "modified": { "type": "string", "format": "date-time", "description": "Last modification timestamp" } }, "required": ["id", "type", "body", "name"] }, "Meeting": { "type": "object", "properties": { "id": { "type": "string", "description": "Unique identifier for the meeting" }, "type": { "type": "string", "enum": ["https://schema.oparl.org/1.1/Meeting"], "description": "Type identifier" }, "body": { "type": "string", "format": "uri", "description": "URL to the body" }, "name": { "type": "string", "description": "Name of the meeting" }, "meetingState": { "type": "string", "enum": ["scheduled", "cancelled", "took place"], "description": "State of the meeting" }, "start": { "type": "string", "format": "date-time", "description": "Start time of the meeting" }, "end": { "type": "string", "format": "date-time", "description": "End time of the meeting" }, "location": { "type": "string", "format": "uri", "description": "URL to the location" }, "organization": { "type": "array", "items": { "type": "string", "format": "uri" }, "description": "URLs to organizations" }, "participant": { "type": "array", "items": { "type": "string", "format": "uri" }, "description": "URLs to participants" }, "invitation": { "type": "string", "format": "uri", "description": "URL to the invitation" }, "resultsProtocol": { "type": "string", "format": "uri", "description": "URL to the results protocol" }, "verbatimProtocol": { "type": "string", "format": "uri", "description": "URL to the verbatim protocol" }, "auxiliaryFile": { "type": "array", "items": { "type": "string", "format": "uri" }, "description": "URLs to auxiliary files" }, "agendaItem": { "type": "string", "format": "uri", "description": "URL to the list of agenda items" }, "created": { "type": "string", "format": "date-time", "description": "Creation timestamp" }, "modified": { "type": "string", "format": "date-time", "description": "Last modification timestamp" } }, "required": ["id", "type", "body", "name", "meetingState"] }, "AgendaItem": { "type": "object", "properties": { "id": { "type": "string", "description": "Unique identifier for the agenda item" }, "type": { "type": "string", "enum": ["https://schema.oparl.org/1.1/AgendaItem"], "description": "Type identifier" }, "meeting": { "type": "string", "format": "uri", "description": "URL to the meeting" }, "order": { "type": "integer", "description": "Order of the agenda item" }, "name": { "type": "string", "description": "Name of the agenda item" }, "public": { "type": "boolean", "description": "Whether the agenda item is public" }, "consultation": { "type": "array", "items": { "type": "string", "format": "uri" }, "description": "URLs to consultations" }, "resolutionText": { "type": "string", "description": "Text of the resolution" }, "resolutionFile": { "type": "string", "format": "uri", "description": "URL to the resolution file" }, "created": { "type": "string", "format": "date-time", "description": "Creation timestamp" }, "modified": { "type": "string", "format": "date-time", "description": "Last modification timestamp" } }, "required": ["id", "type", "meeting", "name"] }, "Paper": { "type": "object", "properties": { "id": { "type": "string", "description": "Unique identifier for the paper" }, "type": { "type": "string", "enum": ["https://schema.oparl.org/1.1/Paper"], "description": "Type identifier" }, "body": { "type": "string", "format": "uri", "description": "URL to the body" }, "name": { "type": "string", "description": "Name of the paper" }, "reference": { "type": "string", "description": "Reference number" }, "date": { "type": "string", "format": "date", "description": "Date of the paper" }, "paperType": { "type": "string", "description": "Type of paper" }, "relatedPaper": { "type": "array", "items": { "type": "string", "format": "uri" }, "description": "URLs to related papers" }, "superordinatePaper": { "type": "string", "format": "uri", "description": "URL to superordinate paper" }, "subordinatePaper": { "type": "array", "items": { "type": "string", "format": "uri" }, "description": "URLs to subordinate papers" }, "mainFile": { "type": "string", "format": "uri", "description": "URL to the main file" }, "auxiliaryFile": { "type": "array", "items": { "type": "string", "format": "uri" }, "description": "URLs to auxiliary files" }, "location": { "type": "array", "items": { "type": "string", "format": "uri" }, "description": "URLs to locations" }, "originatorPerson": { "type": "array", "items": { "type": "string", "format": "uri" }, "description": "URLs to originator persons" }, "underDirectionOf": { "type": "array", "items": { "type": "string", "format": "uri" }, "description": "URLs to directing organizations" }, "originatorOrganization": { "type": "array", "items": { "type": "string", "format": "uri" }, "description": "URLs to originator organizations" }, "consultation": { "type": "string", "format": "uri", "description": "URL to the consultation" }, "created": { "type": "string", "format": "date-time", "description": "Creation timestamp" }, "modified": { "type": "string", "format": "date-time", "description": "Last modification timestamp" } }, "required": ["id", "type", "body", "name"] }, "LegislativeTerm": { "type": "object", "properties": { "id": { "type": "string", "description": "Unique identifier for the legislative term" }, "type": { "type": "string", "enum": ["https://schema.oparl.org/1.1/LegislativeTerm"], "description": "Type identifier" }, "body": { "type": "string", "format": "uri", "description": "URL to the body" }, "name": { "type": "string", "description": "Name of the legislative term" }, "startDate": { "type": "string", "format": "date", "description": "Start date of the legislative term" }, "endDate": { "type": "string", "format": "date", "description": "End date of the legislative term" } }, "required": ["id", "type", "body", "name"] }, "Pagination": { "type": "object", "properties": { "totalElements": { "type": "integer", "description": "Total number of elements" }, "totalPages": { "type": "integer", "description": "Total number of pages" }, "currentPage": { "type": "integer", "description": "Current page number" }, "pageSize": { "type": "integer", "description": "Number of elements per page" }, "hasNext": { "type": "boolean", "description": "Whether there is a next page" }, "hasPrevious": { "type": "boolean", "description": "Whether there is a previous page" } } } } } }

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/jtwolfe/oparl-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server