@gera-services/mcp-gera-clinic 0.1.1 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,10 @@
1
+ /**
2
+ * @gera-services/mcp-gera-clinic
3
+ *
4
+ * MCP server for GeraClinic — find CQC-registered UK care/health providers,
5
+ * read area care statistics, and run non-diagnostic health calculators, all
6
+ * offline. Re-exports the server and start function for programmatic use.
7
+ *
8
+ * @packageDocumentation
9
+ */
10
+ export { server, main } from './server.js';
package/dist/index.js ADDED
@@ -0,0 +1,10 @@
1
+ /**
2
+ * @gera-services/mcp-gera-clinic
3
+ *
4
+ * MCP server for GeraClinic — find CQC-registered UK care/health providers,
5
+ * read area care statistics, and run non-diagnostic health calculators, all
6
+ * offline. Re-exports the server and start function for programmatic use.
7
+ *
8
+ * @packageDocumentation
9
+ */
10
+ export { server, main } from './server.js';
@@ -0,0 +1,17 @@
1
+ /**
2
+ * GeraClinic MCP Server (stdio)
3
+ *
4
+ * Exposes GeraClinic's real UK healthcare-provider directory (Care Quality
5
+ * Commission registered locations) and its non-diagnostic health calculators to
6
+ * AI agents over the Model Context Protocol. Everything is computed locally from
7
+ * a bundled snapshot of real CQC data and pure reference math — no backend, no
8
+ * network, no auth required — so an agent (Claude, ChatGPT with tools, any MCP
9
+ * client) can find a care provider, read area care statistics, and run a health
10
+ * calculator entirely offline.
11
+ *
12
+ * Product: GeraClinic — https://geraclinic.com (a Gera Systems product)
13
+ * Data: Care Quality Commission www.cqc.org.uk, Open Government Licence v3.0.
14
+ */
15
+ import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
16
+ export declare const server: McpServer;
17
+ export declare function main(): Promise<void>;
package/dist/server.js ADDED
@@ -0,0 +1,257 @@
1
+ /**
2
+ * GeraClinic MCP Server (stdio)
3
+ *
4
+ * Exposes GeraClinic's real UK healthcare-provider directory (Care Quality
5
+ * Commission registered locations) and its non-diagnostic health calculators to
6
+ * AI agents over the Model Context Protocol. Everything is computed locally from
7
+ * a bundled snapshot of real CQC data and pure reference math — no backend, no
8
+ * network, no auth required — so an agent (Claude, ChatGPT with tools, any MCP
9
+ * client) can find a care provider, read area care statistics, and run a health
10
+ * calculator entirely offline.
11
+ *
12
+ * Product: GeraClinic — https://geraclinic.com (a Gera Systems product)
13
+ * Data: Care Quality Commission www.cqc.org.uk, Open Government Licence v3.0.
14
+ */
15
+ import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
16
+ import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
17
+ import { z } from 'zod';
18
+ import { CQC_META, CQC_AUTHORITIES, CQC_ATTRIBUTION, SERVICE_TYPES, ALL_PROVIDERS, searchProviders, findArea, } from './cqc.js';
19
+ import { CALCULATORS, bmi, bmrTdee, idealWeightKg, bloodPressureCategory, heartRateZones, a1c, waterIntakeLitres, waistToHeight, } from './calculators.js';
20
+ export const server = new McpServer({
21
+ name: 'gera-clinic',
22
+ version: '1.0.0',
23
+ });
24
+ function asText(payload) {
25
+ return {
26
+ content: [{ type: 'text', text: JSON.stringify(payload, null, 2) }],
27
+ };
28
+ }
29
+ const CQC_DISCLAIMER = 'Directory of CQC-registered locations. CQC ratings are categorical (Outstanding/Good/Requires improvement/Inadequate), never numeric. Verify details on cqc.org.uk before relying on them. Source: Care Quality Commission, Open Government Licence v3.0.';
30
+ // ── Tool 1: find_care_provider ───────────────────────────────────────────────
31
+ // Search the real CQC dataset by name / postcode / service type / area.
32
+ server.registerTool('find_care_provider', {
33
+ title: 'Find a CQC-registered care or health provider',
34
+ description: "Search GeraClinic's directory of real Care Quality Commission (CQC) registered UK providers — GP surgeries, dentists, hospitals, clinics, care/nursing homes, hospices, urgent-care centres and more. Filter by name, postcode (full or outward, e.g. 'TN12'), service type (e.g. 'Dentist', 'Doctors/GPs', 'Hospital'), and/or local authority (e.g. 'kent'). Returns provider name, address, postcode, phone, website, service types and last-inspected date. All filters are AND-combined; omit any. Offline — real CQC records only.",
35
+ inputSchema: {
36
+ query: z.string().optional().describe('Provider or organisation name substring.'),
37
+ postcode: z
38
+ .string()
39
+ .optional()
40
+ .describe('Full postcode or outward code, e.g. "TN12 6AX" or "TN12".'),
41
+ serviceType: z
42
+ .string()
43
+ .optional()
44
+ .describe('Service type, e.g. "Dentist", "Doctors/GPs", "Hospital", "Nursing homes".'),
45
+ authority: z
46
+ .string()
47
+ .optional()
48
+ .describe('Local authority slug or name, e.g. "kent", "Essex".'),
49
+ limit: z.number().int().min(1).max(50).optional().describe('Max results (default 10).'),
50
+ },
51
+ }, async ({ query, postcode, serviceType, authority, limit }) => {
52
+ const results = searchProviders({
53
+ query,
54
+ postcode,
55
+ serviceType,
56
+ authority,
57
+ limit: limit ?? 10,
58
+ });
59
+ return asText({
60
+ query: {
61
+ query: query ?? null,
62
+ postcode: postcode ?? null,
63
+ serviceType: serviceType ?? null,
64
+ authority: authority ?? null,
65
+ },
66
+ count: results.length,
67
+ providers: results.map((r) => ({
68
+ cqc_location_id: r.provider.cqcLocationId,
69
+ name: r.provider.name,
70
+ provider_name: r.provider.providerName,
71
+ address: r.provider.address,
72
+ postcode: r.provider.postcode,
73
+ phone: r.provider.phone,
74
+ website: r.provider.website,
75
+ service_types: r.provider.serviceTypes,
76
+ last_inspected: r.provider.lastInspected,
77
+ cqc_profile_url: `https://www.cqc.org.uk/location/${r.provider.cqcLocationId}`,
78
+ authority: r.authorityName,
79
+ region: r.region,
80
+ })),
81
+ disclaimer: CQC_DISCLAIMER,
82
+ });
83
+ });
84
+ // ── Tool 2: get_cqc_area_stats ───────────────────────────────────────────────
85
+ // Aggregated, real CQC statistics for an authority or locality.
86
+ server.registerTool('get_cqc_area_stats', {
87
+ title: 'Get CQC care statistics for a UK area',
88
+ description: "Return GeraClinic's aggregated Care Quality Commission statistics for a UK local authority or locality (e.g. 'kent', 'essex'). Includes total registered providers, how many publish a phone number / website, the breakdown by service type (GPs, dentists, care homes, hospitals, etc.) with counts and percentages, the most common service type, and the latest inspection date in the area. Use list_care_authorities first to discover valid area names. Real CQC data, offline.",
89
+ inputSchema: {
90
+ area: z
91
+ .string()
92
+ .describe('Authority or locality slug/name, e.g. "kent", "essex", "surrey".'),
93
+ },
94
+ }, async ({ area }) => {
95
+ const found = findArea(area);
96
+ if (!found) {
97
+ return asText({
98
+ error: `No CQC area found for "${area}". Call list_care_authorities to see valid areas.`,
99
+ });
100
+ }
101
+ const a = found.area;
102
+ return asText({
103
+ area: 'name' in a ? a.name : a.slug,
104
+ kind: found.kind,
105
+ authority: found.authorityName,
106
+ region: 'region' in a ? a.region : null,
107
+ stats: {
108
+ total_providers: a.stats.total,
109
+ with_phone: a.stats.withPhone,
110
+ with_phone_pct: a.stats.withPhonePct,
111
+ with_website: a.stats.withWebsite,
112
+ top_service_type: a.stats.topServiceType,
113
+ latest_inspection: a.stats.latestCheck,
114
+ service_type_breakdown: a.stats.serviceTypes.map((s) => ({
115
+ type: s.type,
116
+ count: s.count,
117
+ pct: s.pct,
118
+ })),
119
+ },
120
+ disclaimer: CQC_DISCLAIMER,
121
+ });
122
+ });
123
+ // ── Tool 3: list_care_authorities ────────────────────────────────────────────
124
+ // Discover the areas available, optionally filtered by region.
125
+ server.registerTool('list_care_authorities', {
126
+ title: 'List UK areas covered by the CQC directory',
127
+ description: "List the UK local authorities GeraClinic's CQC directory covers, with the number of registered providers and the top service type in each. Optionally filter by region (e.g. 'London', 'South East', 'North West'). Use this to find a valid `area` value for get_cqc_area_stats or an `authority` for find_care_provider.",
128
+ inputSchema: {
129
+ region: z.string().optional().describe('Filter by region, e.g. "London", "South East".'),
130
+ },
131
+ }, async ({ region }) => {
132
+ const rNorm = region ? region.toLowerCase().trim() : null;
133
+ const authorities = CQC_AUTHORITIES.filter((a) => !rNorm || (a.region ?? '').toLowerCase() === rNorm).map((a) => ({
134
+ slug: a.slug,
135
+ name: a.name,
136
+ region: a.region,
137
+ total_providers: a.stats.total,
138
+ top_service_type: a.stats.topServiceType,
139
+ localities: a.localities.length,
140
+ }));
141
+ return asText({
142
+ dataset: {
143
+ total_providers_indexed: CQC_META.totalProviders,
144
+ total_localities: CQC_META.totalLocalities,
145
+ generated_at: CQC_META.generatedAt,
146
+ attribution: CQC_ATTRIBUTION,
147
+ attribution_url: CQC_META.attributionUrl,
148
+ },
149
+ region_filter: region ?? null,
150
+ count: authorities.length,
151
+ service_types_available: SERVICE_TYPES,
152
+ authorities,
153
+ });
154
+ });
155
+ // ── Tool 4: list_health_calculators ──────────────────────────────────────────
156
+ server.registerTool('list_health_calculators', {
157
+ title: 'List GeraClinic health calculators',
158
+ description: 'List the health calculators available via run_health_calculator — BMI, BMR/TDEE calories, ideal weight, blood-pressure category, heart-rate zones, A1C↔glucose, water intake, and waist-to-height ratio — each with its id, required inputs, and the public reference standard it uses. All are objective and non-diagnostic.',
159
+ inputSchema: {},
160
+ }, async () => asText({
161
+ count: CALCULATORS.length,
162
+ calculators: CALCULATORS,
163
+ note: 'Objective reference math only — educational, not a diagnosis or prescription.',
164
+ }));
165
+ // ── Tool 5: run_health_calculator ────────────────────────────────────────────
166
+ server.registerTool('run_health_calculator', {
167
+ title: 'Run a GeraClinic health calculator',
168
+ description: "Run one of GeraClinic's non-diagnostic health calculators and return the result. Pick `calculator` (see list_health_calculators) and pass the metric inputs it needs (heights in cm, weights in kg). Examples: bmi {weightKg, heightCm}; bmr_tdee {weightKg, heightCm, ageYears, sex, activity}; ideal_weight {heightCm, sex}; blood_pressure {systolic, diastolic}; heart_rate_zones {ageYears}; a1c {a1cPercent} or {avgGlucoseMgDl}; water_intake {weightKg, activityMinutes?}; waist_to_height {waistCm, heightCm}. Results are educational reference values, not medical advice.",
169
+ inputSchema: {
170
+ calculator: z
171
+ .enum([
172
+ 'bmi',
173
+ 'bmr_tdee',
174
+ 'ideal_weight',
175
+ 'blood_pressure',
176
+ 'heart_rate_zones',
177
+ 'a1c',
178
+ 'water_intake',
179
+ 'waist_to_height',
180
+ ])
181
+ .describe('Which calculator to run.'),
182
+ weightKg: z.number().positive().optional(),
183
+ heightCm: z.number().positive().optional(),
184
+ ageYears: z.number().int().positive().optional(),
185
+ sex: z.enum(['male', 'female']).optional(),
186
+ activity: z.enum(['sedentary', 'light', 'moderate', 'active', 'very_active']).optional(),
187
+ systolic: z.number().positive().optional(),
188
+ diastolic: z.number().positive().optional(),
189
+ a1cPercent: z.number().positive().optional(),
190
+ avgGlucoseMgDl: z.number().positive().optional(),
191
+ activityMinutes: z.number().min(0).optional(),
192
+ waistCm: z.number().positive().optional(),
193
+ },
194
+ }, async (args) => {
195
+ const need = (cond, msg) => {
196
+ if (!cond)
197
+ throw new Error(msg);
198
+ };
199
+ let result;
200
+ switch (args.calculator) {
201
+ case 'bmi':
202
+ need(args.weightKg != null && args.heightCm != null, 'bmi requires weightKg and heightCm');
203
+ result = bmi(args.weightKg, args.heightCm);
204
+ break;
205
+ case 'bmr_tdee':
206
+ need(args.weightKg != null &&
207
+ args.heightCm != null &&
208
+ args.ageYears != null &&
209
+ args.sex != null &&
210
+ args.activity != null, 'bmr_tdee requires weightKg, heightCm, ageYears, sex, activity');
211
+ result = bmrTdee(args.weightKg, args.heightCm, args.ageYears, args.sex, args.activity);
212
+ break;
213
+ case 'ideal_weight':
214
+ need(args.heightCm != null && args.sex != null, 'ideal_weight requires heightCm and sex');
215
+ result = idealWeightKg(args.heightCm, args.sex);
216
+ break;
217
+ case 'blood_pressure':
218
+ need(args.systolic != null && args.diastolic != null, 'blood_pressure requires systolic and diastolic');
219
+ result = bloodPressureCategory(args.systolic, args.diastolic);
220
+ break;
221
+ case 'heart_rate_zones':
222
+ need(args.ageYears != null, 'heart_rate_zones requires ageYears');
223
+ result = heartRateZones(args.ageYears);
224
+ break;
225
+ case 'a1c':
226
+ need(args.a1cPercent != null || args.avgGlucoseMgDl != null, 'a1c requires a1cPercent or avgGlucoseMgDl');
227
+ result = a1c(args.a1cPercent, args.avgGlucoseMgDl);
228
+ break;
229
+ case 'water_intake':
230
+ need(args.weightKg != null, 'water_intake requires weightKg');
231
+ result = waterIntakeLitres(args.weightKg, args.activityMinutes ?? 0);
232
+ break;
233
+ case 'waist_to_height':
234
+ need(args.waistCm != null && args.heightCm != null, 'waist_to_height requires waistCm and heightCm');
235
+ result = waistToHeight(args.waistCm, args.heightCm);
236
+ break;
237
+ }
238
+ return asText({
239
+ calculator: args.calculator,
240
+ result,
241
+ disclaimer: 'Educational reference value only — not a medical diagnosis, treatment, or prescription. Consult a clinician for personal advice.',
242
+ });
243
+ });
244
+ // ── Start ────────────────────────────────────────────────────────────────────
245
+ export async function main() {
246
+ const transport = new StdioServerTransport();
247
+ await server.connect(transport);
248
+ // stderr only — stdout is the MCP transport.
249
+ console.error(`GeraClinic MCP server running on stdio (gera-clinic v1.0.0) — ${ALL_PROVIDERS.length} CQC providers indexed`);
250
+ }
251
+ const isMain = typeof process !== 'undefined' && process.argv[1] && /server\.js$/.test(process.argv[1]);
252
+ if (isMain) {
253
+ main().catch((err) => {
254
+ console.error('Fatal:', err);
255
+ process.exit(1);
256
+ });
257
+ }
package/llms.txt CHANGED
@@ -1,34 +1,27 @@
1
1
  # GeraClinic MCP Server
2
2
 
3
- > AI-accessible telemedicine and healthcare API by Gera Services. Enables AI agents to search doctors, check availability, and book medical appointments across 50+ countries.
3
+ > Offline MCP server by Gera Systems. Lets AI agents find CQC-registered UK care/health providers, read area care statistics, and run non-diagnostic health calculators no backend, no network, no auth. Real Care Quality Commission data under the Open Government Licence v3.0.
4
4
 
5
5
  ## What This MCP Server Does
6
6
 
7
- The `@gera-services/mcp-gera-clinic` MCP server connects AI assistants (Claude, ChatGPT, Gemini, etc.) directly to [GeraClinic](https://geraclinic.com) a worldwide telemedicine platform. Using this server, an AI agent can help a user find a doctor, check when they are available, and book a video, in-person, or chat consultation without the user ever leaving their AI interface.
7
+ The `@gera-services/mcp-gera-clinic` MCP server connects AI assistants (Claude, ChatGPT, Gemini, etc.) to [GeraClinic](https://geraclinic.com)'s real UK healthcare-provider directory and its published health-calculator math. Everything is computed locally from a bundled snapshot of real Care Quality Commission (CQC) data and pure reference formulas, so an agent can find a provider, read area care statistics, and run a health calculator entirely offline.
8
8
 
9
- ## Available Tools
9
+ ## Available Tools (all offline, no authentication)
10
10
 
11
- ### Read-Only (no authentication required)
11
+ - find_care_provider: Search real CQC-registered UK providers (GP surgeries, dentists, hospitals, clinics, care/nursing homes, hospices, urgent care) by name, postcode (full or outward), service type, and/or local authority. Returns address, phone, website, service types, last-inspected date, and the CQC profile URL.
12
+ - get_cqc_area_stats: Aggregated CQC statistics for a UK local authority or locality — total registered providers, phone/website coverage, service-type breakdown with counts and percentages, top service type, and latest inspection date.
13
+ - list_care_authorities: List the UK areas the directory covers (optionally filtered by region) with provider counts and the available service types — used to discover valid area/authority values.
14
+ - list_health_calculators: List the available health calculators with their inputs and the public reference standard each uses.
15
+ - run_health_calculator: Run a calculator — BMI (WHO), BMR/TDEE (Mifflin-St Jeor), ideal weight (Devine/Robinson/Miller/Hamwi), blood-pressure category (ACC/AHA), heart-rate zones, A1C↔glucose (ADAG), water intake, or waist-to-height ratio. Objective, non-diagnostic reference values.
12
16
 
13
- - [search_doctors](https://geraclinic.com/find-doctor): Search verified doctors by specialty, country, language, appointment type (video/in-person/chat), and minimum rating. Supports pagination.
14
- - [get_doctor_profile](https://geraclinic.com/doctors): Get a full doctor profile — bio, qualifications, languages spoken, consultation fees, and supported appointment types.
15
- - [get_available_slots](https://geraclinic.com/book): Get open appointment time slots for a specific doctor on a given date.
16
- - [list_specialties](https://geraclinic.com/specialties): List all medical specialties available in a country (general practice, cardiology, dermatology, etc.).
17
- - [get_featured_doctors](https://geraclinic.com/featured): Get top-rated and verified doctors for a country.
18
- - [get_health_services](https://geraclinic.com/services): Get all health service types available in a country — telemedicine, pharmacy, lab tests, home nursing.
17
+ ## Data & Disclaimers
19
18
 
20
- ### Authenticated (bearer token required)
21
-
22
- - [book_appointment](https://geraclinic.com/book): Book a medical consultation. Returns confirmation with payment URL if applicable.
23
-
24
- ## Multi-Country Support
25
-
26
- Pass any ISO 3166-1 alpha-2 country code (e.g., `GB`, `US`, `AM`, `GE`, `UG`, `KE`, `NG`) via the `country` parameter. Each country may have different specialties, pricing, and appointment types available.
19
+ Provider data: Care Quality Commission www.cqc.org.uk, licensed under the Open Government Licence v3.0. CQC ratings are categorical (Outstanding / Good / Requires improvement / Inadequate), never numeric. Health calculators are educational reference math, not a diagnosis or prescription.
27
20
 
28
21
  ## Installation & Integration
29
22
 
30
23
  ```bash
31
- npx @gera-services/mcp-gera-clinic
24
+ npx -y @gera-services/mcp-gera-clinic
32
25
  ```
33
26
 
34
27
  Claude Desktop config (`claude_desktop_config.json`):
@@ -37,8 +30,7 @@ Claude Desktop config (`claude_desktop_config.json`):
37
30
  "mcpServers": {
38
31
  "gera-clinic": {
39
32
  "command": "npx",
40
- "args": ["@gera-services/mcp-gera-clinic"],
41
- "env": { "GERACLINIC_API_URL": "https://api.geraclinic.com" }
33
+ "args": ["-y", "@gera-services/mcp-gera-clinic"]
42
34
  }
43
35
  }
44
36
  }
@@ -46,9 +38,8 @@ Claude Desktop config (`claude_desktop_config.json`):
46
38
 
47
39
  ## About GeraClinic
48
40
 
49
- GeraClinic is a product of [Gera Services](https://gera.services). It provides telemedicine services across 50+ countries, connecting patients with verified doctors for video, in-person, and chat consultations. Specialties include general practice, cardiology, dermatology, pediatrics, mental health, and more.
41
+ GeraClinic is a product of [Gera Systems](https://gera.services).
50
42
 
51
43
  - Homepage: https://geraclinic.com
52
- - API Docs: https://api.geraclinic.com/api/docs
53
44
  - MCP Package: https://www.npmjs.com/package/@gera-services/mcp-gera-clinic
54
45
  - MCP Registry: io.github.geraservicesuk/mcp-gera-clinic
package/package.json CHANGED
@@ -1,58 +1,57 @@
1
1
  {
2
2
  "name": "@gera-services/mcp-gera-clinic",
3
- "version": "0.1.1",
4
- "description": "MCP server for GeraClinic telemedicine platform search doctors, check availability, and book medical appointments across 50+ countries",
5
- "mcpName": "io.github.geraservicesuk/mcp-gera-clinic",
3
+ "version": "1.0.0",
4
+ "description": "GeraClinic MCP server find CQC-registered UK care/health providers, read area care statistics, and run non-diagnostic health calculators. Deterministic, offline, no auth. A Gera Systems product.",
5
+ "license": "MIT",
6
+ "type": "module",
6
7
  "main": "dist/server.js",
7
8
  "types": "dist/server.d.ts",
9
+ "mcpName": "io.github.geraservicesuk/mcp-gera-clinic",
8
10
  "bin": {
9
11
  "mcp-gera-clinic": "bin/cli.js"
10
12
  },
11
13
  "files": [
12
14
  "dist",
13
15
  "bin",
16
+ "server.json",
14
17
  "README.md",
15
18
  "LICENSE",
16
- "server.json",
17
19
  "llms.txt"
18
20
  ],
19
21
  "publishConfig": {
20
22
  "access": "public"
21
23
  },
22
24
  "scripts": {
23
- "build": "node build.mjs",
25
+ "build": "tsc --noCheck && mkdir -p dist/data && cp src/data/cqc-cluster.json dist/data/cqc-cluster.json",
24
26
  "type-check": "tsc --noEmit",
25
- "dev": "tsc --watch --noCheck",
26
- "start": "node dist/server.js",
27
- "prepublishOnly": "npm run build"
27
+ "start": "node bin/cli.js",
28
+ "smoke": "node scripts/smoke.mjs"
28
29
  },
29
30
  "keywords": [
30
31
  "mcp",
31
32
  "model-context-protocol",
32
- "ai",
33
33
  "healthcare",
34
- "telemedicine",
34
+ "cqc",
35
+ "care-quality-commission",
36
+ "uk-health",
35
37
  "doctor-search",
36
- "appointment-booking",
38
+ "health-calculators",
37
39
  "gera-clinic",
38
40
  "gera"
39
41
  ],
40
42
  "author": {
41
- "name": "Gera Services",
43
+ "name": "Gera Systems",
42
44
  "email": "engineering@gera.services",
43
45
  "url": "https://gera.services"
44
46
  },
45
- "license": "MIT",
47
+ "homepage": "https://geraclinic.com",
46
48
  "repository": {
47
49
  "type": "git",
48
- "url": "https://github.com/geraservicesuk/mcp-gera-clinic"
50
+ "url": "https://github.com/geraservicesuk/globetura.git",
51
+ "directory": "packages/mcp-gera-clinic"
49
52
  },
50
- "homepage": "https://geraclinic.com",
51
53
  "bugs": {
52
- "url": "https://github.com/geraservicesuk/mcp-gera-clinic/issues"
53
- },
54
- "engines": {
55
- "node": ">=18.0.0"
54
+ "url": "https://github.com/geraservicesuk/globetura/issues"
56
55
  },
57
56
  "dependencies": {
58
57
  "@modelcontextprotocol/sdk": "^1.12.0",
@@ -60,7 +59,9 @@
60
59
  },
61
60
  "devDependencies": {
62
61
  "@types/node": "^20.12.0",
63
- "esbuild": "^0.28.0",
64
62
  "typescript": "^5.4.0"
63
+ },
64
+ "engines": {
65
+ "node": ">=20"
65
66
  }
66
67
  }
package/server.json CHANGED
@@ -1,27 +1,22 @@
1
1
  {
2
2
  "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
3
3
  "name": "io.github.geraservicesuk/mcp-gera-clinic",
4
- "description": "Telemedicine MCP server for GeraClinic. Search doctors by specialty and language, check real-time availability, book and reschedule video consultations, run symptom triage, request prescriptions, and manage patient records. Works in 50+ countries with support for Armenian, Georgian, Azerbaijani, Russian, Swahili, and English. 7 tools: search_doctors, get_doctor, check_availability, book_appointment, cancel_appointment, run_symptom_triage, list_specialties. Public read; booking requires OAuth.",
4
+ "description": "Find CQC-registered UK care/health providers and run non-diagnostic health calculators (BMI, etc).",
5
+ "version": "1.0.0",
5
6
  "repository": {
6
- "url": "https://github.com/geraservicesuk/mcp-gera-clinic",
7
- "source": "github"
7
+ "url": "https://github.com/geraservicesuk/globetura",
8
+ "source": "github",
9
+ "subfolder": "packages/mcp-gera-clinic"
8
10
  },
9
- "version": "0.1.0",
11
+ "websiteUrl": "https://geraclinic.com",
10
12
  "packages": [
11
13
  {
12
14
  "registryType": "npm",
13
15
  "identifier": "@gera-services/mcp-gera-clinic",
14
- "version": "0.1.0",
16
+ "version": "1.0.0",
15
17
  "transport": {
16
18
  "type": "stdio"
17
- },
18
- "environmentVariables": [
19
- {
20
- "name": "GERACLINIC_API_URL",
21
- "description": "Base URL for the GeraClinic API (defaults to https://api.geraclinic.com)",
22
- "required": false
23
- }
24
- ]
19
+ }
25
20
  }
26
21
  ]
27
22
  }