Georgia Homeroom MCP
An MCP server providing access to Georgia K-12 academic standards, Georgia Milestones (GMAS) blueprints, and achievement level descriptors for educators and administrators.
Endpoint and access
No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.
https://mcp.georgiahomeroom.org/mcpWhat you can do with it
- Plan lessons grounded in exact standards cited by code
- Prepare for Georgia Milestones by reviewing blueprints and weightings
- Look up standards by code including legacy MGSE/ELAGSE translations
- Check curriculum alignment and audit coverage against state standards
Source and maintenance
Protocol and capabilities
- Server
- Georgia Homeroom 0.2.0
- MCP protocol
- 2025-06-18
- Tools
- 11 advertised
- Resources
- 0 advertised
- Resource templates
- 0 advertised
- Prompts
- 0 advertised
{
"tools": {
"listChanged": false
},
"prompts": {
"listChanged": false
},
"resources": {
"subscribe": false,
"listChanged": false
},
"experimental": {}
}Server-provided instructions
Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.
Tools
11 advertised
search_standards — Search Standards
Search the Georgia Standards of Excellence by topic, with optional filters. Returns matching standards as `items` (each: `code`, `subject`, `grades`, `strand_code`, `strand_name`, `hs_course`, `statement`, plus optional `notes` and `path`). When enrichment is on, the response also carries `alds` (achievement-level descriptions per standard), `assessment_coverage` (Milestones claim, target, approx_points, sub_codes, qualifier), and `assessment_metadata` keyed by assessment_id (Depth of Knowledge split, item-type design); the server instructions explain how to read points, qualifiers, and levels. If `dropped_strand` is set, the strand filter matched nothing and the results span the whole subject. `truncated` means more matches may exist than `limit` allowed. Enrichment is automatic for small result sets (8 standards or fewer) and off for larger ones unless `include_enrichment` is true. If the query itself contains a standard code (e.g. 'what is 5.NR.1?'), the search becomes a direct code lookup and the other filters are ignored; lookup_standards_by_code is the direct route for known codes. Limitation: matches the words of the standards, in English.
{
"type": "object",
"title": "search_standardsArguments",
"required": [
"query"
],
"properties": {
"grade": {
"anyOf": [
{
"enum": [
"K",
"KG",
"01",
"02",
"03",
"04",
"05",
"06",
"07",
"08",
"09",
"10",
"11",
"12",
"1",
"2",
"3",
"4",
"5",
"6",
"7",
"8",
"9"
],
"type": "string"
},
{
"type": "null"
}
],
"title": "Grade",
"default": null,
"description": "One grade: 'K' (or 'KG') or '01' through '12'. '1' through '9' also work. Do not combine with grade_set."
},
"limit": {
"anyOf": [
{
"type": "integer",
"maximum": 100,
"minimum": 1
},
{
"type": "null"
}
],
"title": "Limit",
"default": null,
"description": "Most rows to return, 1 to 100. Default: 40 when narrowed by grade, grade_set, or course; 20 otherwise."
},
"query": {
"type": "string",
"title": "Query",
"maxLength": 500,
"description": "Topic words to search for, e.g. 'adding fractions with unlike denominators'."
},
"course": {
"anyOf": [
{
"type": "string",
"maxLength": 100
},
{
"type": "null"
}
],
"title": "Course",
"default": null,
"description": "Optional high-school course, e.g. 'algebra i', 'biology', 'us history' (describe_vocabulary lists them)."
},
"subjects": {
"anyOf": [
{
"type": "array",
"items": {
"enum": [
"ela",
"math",
"science",
"social_studies"
],
"type": "string"
},
"maxItems": 4
},
{
"type": "null"
}
],
"title": "Subjects",
"default": null,
"description": "Limit to these subjects."
},
"grade_set": {
"anyOf": [
{
"type": "array",
"items": {
"enum": [
"K",
"KG",
"01",
"02",
"03",
"04",
"05",
"06",
"07",
"08",
"09",
"10",
"11",
"12",
"1",
"2",
"3",
"4",
"5",
"6",
"7",
"8",
"9"
],
"type": "string"
},
"maxItems": 13
},
{
"type": "null"
}
],
"title": "Grade Set",
"default": null,
"description": "Several grades at once, e.g. ['03', '04', '05']. Do not combine with grade."
},
"strand_code": {
"anyOf": [
{
"type": "string",
"maxLength": 100
},
{
"type": "null"
}
],
"title": "Strand Code",
"default": null,
"description": "Optional strand, by code ('NR') or name ('Numerical Reasoning'). describe_vocabulary lists the strands for each subject."
},
"include_enrichment": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"title": "Include Enrichment",
"default": null,
"description": "true attaches achievement levels and Milestones coverage to every result; false never does; omit for automatic."
}
}
}{
"type": "object",
"title": "search_standardsDictOutput",
"additionalProperties": true
}{
"title": "Search Standards",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}lookup_standards_by_code — Look Up Standards by Code
Look up Georgia standards by their codes (e.g. ['5.NR.1', '3.T.C.1', 'S8P1', 'SS8H1.a']). Returns the matching standards (each with `code`, `statement`, optional `notes` and `path`), plus per-code `alds` (achievement-level descriptions), `assessment_coverage` (Milestones claim, target, approx_points, qualifier), and `assessment_metadata` keyed by assessment_id; the server instructions explain how to read points, qualifiers, and levels. A sub-code (e.g. '5.NR.3.3') with no descriptors of its own shows its parent standard's. Older codes from earlier materials (MGSE, ELAGSE, CCGPS) are translated to the current code when the mapping is unambiguous, including renamed math strands (fractions moved from `NF` to the current `5.NR.3` cluster), and reported in `normalized_codes`. Codes that still don't match appear in `unknown_codes` with likely `suggestions`.
{
"type": "object",
"title": "lookup_standards_by_codeArguments",
"required": [
"codes"
],
"properties": {
"codes": {
"type": "array",
"items": {
"type": "string",
"maxLength": 40
},
"title": "Codes",
"maxItems": 50,
"minItems": 1,
"description": "One or more standard codes, e.g. ['5.NR.1', 'S8P1']."
}
}
}{
"type": "object",
"title": "lookup_standards_by_codeDictOutput",
"additionalProperties": true
}{
"title": "Look Up Standards by Code",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}search_mastery_descriptors — Search Achievement Level Descriptions
Search the Georgia Milestones achievement-level descriptors: the official descriptions of what a student can do at each of four levels (Beginning, Developing, Proficient, Distinguished) for a standard. Use it for 'what does mastery look like' questions (e.g. 'what does a proficient 3rd grader do with fractions?'); it matches the descriptor text, not the standards' own wording. Returns `hits` with `item_code`, `level`, `descriptor_text`, `subject`, `grades`, and `statement` (the standard the descriptor belongs to), best match first. Limitation: descriptors exist only for the subjects and grades the Milestones tests cover, so many standards have none.
{
"type": "object",
"title": "search_mastery_descriptorsArguments",
"required": [
"query"
],
"properties": {
"grade": {
"anyOf": [
{
"enum": [
"K",
"KG",
"01",
"02",
"03",
"04",
"05",
"06",
"07",
"08",
"09",
"10",
"11",
"12",
"1",
"2",
"3",
"4",
"5",
"6",
"7",
"8",
"9"
],
"type": "string"
},
{
"type": "null"
}
],
"title": "Grade",
"default": null,
"description": "One grade: 'K' (or 'KG') or '01' through '12'. '1' through '9' also work."
},
"level": {
"anyOf": [
{
"enum": [
"Beginning",
"Developing",
"Proficient",
"Distinguished"
],
"type": "string"
},
{
"type": "null"
}
],
"title": "Level",
"default": null,
"description": "Only this achievement level."
},
"limit": {
"type": "integer",
"title": "Limit",
"default": 20,
"maximum": 50,
"minimum": 1,
"description": "Most hits to return, 1 to 50."
},
"query": {
"type": "string",
"title": "Query",
"maxLength": 500,
"description": "Words to search for in the descriptor text, e.g. 'fractions'."
},
"subjects": {
"anyOf": [
{
"type": "array",
"items": {
"enum": [
"ela",
"math",
"science",
"social_studies"
],
"type": "string"
},
"maxItems": 4
},
{
"type": "null"
}
],
"title": "Subjects",
"default": null,
"description": "Limit to these subjects."
},
"grade_set": {
"anyOf": [
{
"type": "array",
"items": {
"enum": [
"K",
"KG",
"01",
"02",
"03",
"04",
"05",
"06",
"07",
"08",
"09",
"10",
"11",
"12",
"1",
"2",
"3",
"4",
"5",
"6",
"7",
"8",
"9"
],
"type": "string"
},
"maxItems": 13
},
{
"type": "null"
}
],
"title": "Grade Set",
"default": null,
"description": "Several grades at once, e.g. ['03', '04']."
}
}
}{
"type": "object",
"title": "search_mastery_descriptorsDictOutput",
"additionalProperties": true
}{
"title": "Search Achievement Level Descriptions",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}list_assessments — List Georgia Milestones Tests
List every Georgia Milestones test with a blueprint: 14 End-of-Grade tests (ELA and math for each of grades 3-8; science and social studies in grade 8 only) and 4 End-of-Course tests (Algebra I, Biology, Literature II, US History). Returns `assessments` with `assessment_id`, `subject`, `grade` (null for End-of-Course), `hs_course` (null for End-of-Grade), and a readable `title`. Use the ids with get_assessment_blueprint and standards_for_claim.
{
"type": "object",
"title": "list_assessmentsArguments",
"properties": {}
}{
"type": "object",
"title": "list_assessmentsDictOutput",
"additionalProperties": true
}{
"title": "List Georgia Milestones Tests",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}get_assessment_blueprint — Get Georgia Milestones Test Blueprint
The full blueprint for one Georgia Milestones test, for pacing and coverage planning. Identify the test by `assessment_id` (e.g. 'gmas_g05_math'), by `course` for an End-of-Course test (e.g. 'biology', 'algebra i', 'us history'), or by `grade` + `subject` for an End-of-Grade test (e.g. grade='5', subject='math'). Returns `title`, `total_points`, `dok_distribution` (Depth of Knowledge split), `design` (item-type table), `claim_summary` (points per claim), and `claims`: each claim and target with its `approx_points` and the `standards` it covers. READING THE POINTS. Do not add up `approx_points` down `claims`: the blueprint often draws one merged points cell across several target rows, and each of those rows repeats the pooled value (the naive sum reads 98-114 on the 60-point ELA tests and 82 on the 58-point grade 5 math test). Pooled rows share a `points_group` id and are flagged `points_shared: true`, with co-covered codes in `points_shared_with` and a ready-to-quote `approx_points_note`. The correct numbers are precomputed: `claim_summary` (one total per claim) and `total_claim_points` (the whole test). `total_points` comes from the design table and is null for the ELA blueprints (their PDFs have no Total row), so use `total_claim_points` there. If no single test matches, the result is an error that lists the available tests.
{
"type": "object",
"title": "get_assessment_blueprintArguments",
"properties": {
"grade": {
"anyOf": [
{
"enum": [
"K",
"KG",
"01",
"02",
"03",
"04",
"05",
"06",
"07",
"08",
"09",
"10",
"11",
"12",
"1",
"2",
"3",
"4",
"5",
"6",
"7",
"8",
"9"
],
"type": "string"
},
{
"type": "null"
}
],
"title": "Grade",
"default": null,
"description": "Grade of an End-of-Grade test (3 through 8). Use with subject."
},
"course": {
"anyOf": [
{
"type": "string",
"maxLength": 100
},
{
"type": "null"
}
],
"title": "Course",
"default": null,
"description": "End-of-Course test course: 'algebra i', 'biology', 'literature ii', or 'us history'."
},
"subject": {
"anyOf": [
{
"enum": [
"ela",
"math",
"science",
"social_studies"
],
"type": "string"
},
{
"type": "null"
}
],
"title": "Subject",
"default": null,
"description": "Subject of an End-of-Grade test. Use with grade."
},
"assessment_id": {
"anyOf": [
{
"type": "string",
"maxLength": 100
},
{
"type": "null"
}
],
"title": "Assessment Id",
"default": null,
"description": "Test id from list_assessments, e.g. 'gmas_g05_math'."
}
}
}{
"type": "object",
"title": "get_assessment_blueprintDictOutput",
"additionalProperties": true
}{
"title": "Get Georgia Milestones Test Blueprint",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}standards_for_claim — List Standards in a Blueprint Category
List every standard a Georgia Milestones test assesses under one blueprint claim (a reporting category such as 'Numerical Reasoning'), with point weights. This is the reverse of the per-standard coverage view. Pass an `assessment_id` (from list_assessments) and a `claim_code` (the category heading, e.g. 'Numerical Reasoning', or for ELA '<strand>.<domain>' like 'Texts.Interpreting Texts'); optionally narrow to one `target_text`. Matching ignores case and surrounding spaces. Returns `standards` with `code`, `statement`, `claim_name`, `target_text`, `approx_points`, `sub_codes`, and `qualifier`. READING THE POINTS. `approx_points` is the weight of a claim or target, never of one standard, and a blueprint often draws one merged points cell across several targets. Rows sharing a merged cell repeat that value and share a `points_group` id; each is flagged `points_shared: true`, names its co-covered codes in `points_shared_with`, and carries a ready-to-quote `approx_points_note`. Rows with different `points_group` ids are separate pools. So do not add up `approx_points` down the rows: use the precomputed `claim_total_points`, bounded by `assessment_total_points` / `design_total_points`. Worked example: grade 5 math Numerical Reasoning has 5 rows reading 14/14/14/10/10 (62 if summed), but 5.NR.1+5.NR.4 share one 14-point pool and 5.NR.2+5.NR.5 share one 10-point pool, so the claim is 38 points on a 58-point test. An unknown claim or assessment_id is an error that lists the valid values.
{
"type": "object",
"title": "standards_for_claimArguments",
"required": [
"assessment_id",
"claim_code"
],
"properties": {
"claim_code": {
"type": "string",
"title": "Claim Code",
"maxLength": 200,
"description": "Claim (reporting category) heading, e.g. 'Numerical Reasoning'."
},
"target_text": {
"anyOf": [
{
"type": "string",
"maxLength": 500
},
{
"type": "null"
}
],
"title": "Target Text",
"default": null,
"description": "Optional target within the claim, as written in the blueprint."
},
"assessment_id": {
"type": "string",
"title": "Assessment Id",
"maxLength": 100,
"description": "Test id from list_assessments, e.g. 'gmas_g05_math'."
}
}
}{
"type": "object",
"title": "standards_for_claimDictOutput",
"additionalProperties": true
}{
"title": "List Standards in a Blueprint Category",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}browse_standards — Browse Standards
Walk the Georgia standards hierarchy one level at a time. With no arguments, returns the four subjects. Pass `subject` (optionally with `grade`) for that subject's courses, or pass a row's `id` back as `parent` to open it. `grade` works only with `subject` (or a `subject:<subj>` parent) and is ignored when opening any other row. Math courses have a strand layer between course and standard. Each row has an `id` (pass it back as `parent`), `code`, `title`, `cf_item_type` (the row's level in the state's data: Course, Domain, Content Standard, and so on), `kind`, `has_children`, `child_count`, and `gmas` / `ald` flags (whether the Milestones blueprints or the achievement-level descriptors cover it).
{
"type": "object",
"title": "browse_standardsArguments",
"properties": {
"grade": {
"anyOf": [
{
"enum": [
"K",
"KG",
"01",
"02",
"03",
"04",
"05",
"06",
"07",
"08",
"09",
"10",
"11",
"12",
"1",
"2",
"3",
"4",
"5",
"6",
"7",
"8",
"9"
],
"type": "string"
},
{
"type": "null"
}
],
"title": "Grade",
"default": null,
"description": "One grade: 'K' (or 'KG') or '01' through '12'. '1' through '9' also work. Requires subject."
},
"parent": {
"anyOf": [
{
"type": "string",
"maxLength": 200
},
{
"type": "null"
}
],
"title": "Parent",
"default": null,
"description": "A row `id` from an earlier call: a row identifier, 'subject:<subject>', or 'synth:math_strand:<course id>:<strand code>'."
},
"subject": {
"anyOf": [
{
"enum": [
"ela",
"math",
"science",
"social_studies"
],
"type": "string"
},
{
"type": "null"
}
],
"title": "Subject",
"default": null,
"description": "Subject: 'ela', 'math', 'science', or 'social_studies'."
}
}
}{
"type": "object",
"title": "browse_standardsDictOutput",
"additionalProperties": true
}{
"title": "Browse Standards",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}get_subject_grade_tree — Get All Standards for a Grade
Return every standard for one subject and grade in a single call, as a nested tree: the one-call alternative to repeated browse_standards calls (e.g. 'list all the 4th grade ELA standards'). `subject` and `grade` are required. Each node has `id`, `code`, `title`, `cf_item_type`, `kind`, `strand_code`, `gmas` / `ald` coverage flags, and nested `children`. It carries no achievement-level or test text; follow up on specific codes with get_standard_details or lookup_standards_by_code. Retired rows and empty containers are left out. High school (grades 9-12) is organized by course, with up to 18 courses per grade. Without `course`, a high-school grade returns `courses` (each course's `id`, `code`, `title`, and `standard_count`) instead of the full tree; call again with `course` set to a title, code, or id from that list (or a name like 'algebra i') for that course's standards. `strand_code` narrows any tree to one strand. Returns `tree`, `node_count`, and `standard_count` (nodes that carry a code).
{
"type": "object",
"title": "get_subject_grade_treeArguments",
"required": [
"subject",
"grade"
],
"properties": {
"grade": {
"enum": [
"K",
"KG",
"01",
"02",
"03",
"04",
"05",
"06",
"07",
"08",
"09",
"10",
"11",
"12",
"1",
"2",
"3",
"4",
"5",
"6",
"7",
"8",
"9"
],
"type": "string",
"title": "Grade",
"description": "One grade: 'K' (or 'KG') or '01' through '12'. '1' through '9' also work."
},
"course": {
"anyOf": [
{
"type": "string",
"maxLength": 200
},
{
"type": "null"
}
],
"title": "Course",
"default": null,
"description": "High-school course: a title, code, or id from the `courses` list, or a name like 'algebra i' or 'biology'."
},
"subject": {
"enum": [
"ela",
"math",
"science",
"social_studies"
],
"type": "string",
"title": "Subject",
"description": "Subject: 'ela', 'math', 'science', or 'social_studies'."
},
"strand_code": {
"anyOf": [
{
"type": "string",
"maxLength": 100
},
{
"type": "null"
}
],
"title": "Strand Code",
"default": null,
"description": "Optional strand, by code ('NR') or name ('Numerical Reasoning'). describe_vocabulary lists the strands for each subject."
}
}
}{
"type": "object",
"title": "get_subject_grade_treeDictOutput",
"additionalProperties": true
}{
"title": "Get All Standards for a Grade",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}get_vertical_progression — Trace a Strand Across Grades
Compare one strand year over year, for pacing, remediation, and differentiation. Pass a `code` (e.g. '5.NR.1') to line that standard up against the same code at every grade ('3.NR.1', '4.NR.1', ...), or pass `subject` + `strand_code` (name or code) for the whole strand. Returns `grades`, each with `grade`, `grade_label`, and `standards` (code, statement, and gmas/ald flags). If the strand can't be identified, the result is an error.
{
"type": "object",
"title": "get_vertical_progressionArguments",
"properties": {
"code": {
"anyOf": [
{
"type": "string",
"maxLength": 40
},
{
"type": "null"
}
],
"title": "Code",
"default": null,
"description": "A standard code to trace, e.g. '5.NR.1'."
},
"subject": {
"anyOf": [
{
"enum": [
"ela",
"math",
"science",
"social_studies"
],
"type": "string"
},
{
"type": "null"
}
],
"title": "Subject",
"default": null,
"description": "Subject: 'ela', 'math', 'science', or 'social_studies'. Use with strand_code."
},
"strand_code": {
"anyOf": [
{
"type": "string",
"maxLength": 100
},
{
"type": "null"
}
],
"title": "Strand Code",
"default": null,
"description": "Strand code ('NR') or name ('Numerical Reasoning'). Use with subject."
}
}
}{
"type": "object",
"title": "get_vertical_progressionDictOutput",
"additionalProperties": true
}{
"title": "Trace a Strand Across Grades",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}get_standard_details — Get Standard Details
Full detail for one standard or container, addressed by its code (e.g. '5.NR.3.3', 'S8P1') or by an `id` returned by browse_standards or get_subject_grade_tree. Returns `found`, `id`, `code` (null for containers), `statement`, `subject`, `grades`, `strand_code` / `strand_name`, `hs_course`, `cf_item_type`, `kind`, `path` (where it sits in the curriculum), `notes`, `parent`, `children` (with gmas/ald flags), `alds` (achievement-level descriptions; sub-codes show their parent's), `assessment_coverage` (Milestones claim, target, points, qualifier), and `assessment_metadata` keyed by assessment_id; the server instructions explain how to read points and levels. Containers (domains, clusters, courses) are reachable only by `id` and carry no descriptors or coverage. An unknown code or id is an error; for older MGSE/ELAGSE codes use lookup_standards_by_code, which translates them.
{
"type": "object",
"title": "get_standard_detailsArguments",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"title": "Id",
"maxLength": 200,
"description": "A standard code such as '5.NR.3.3', or a row `id` from browse_standards or get_subject_grade_tree."
}
}
}{
"type": "object",
"title": "get_standard_detailsDictOutput",
"additionalProperties": true
}{
"title": "Get Standard Details",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}describe_vocabulary — List Valid Filter Values
List the exact values the other tools' filters accept, so a search doesn't come back empty because of a typo. Returns `subjects` (id and label), `grades` (value and label), `hs_courses` (the course names the `course` filter accepts, with their subject), `strands` by subject (code and name; either works as `strand_code`), the four `ald_levels` (achievement levels), and the `assessments` catalog of Milestones tests.
{
"type": "object",
"title": "describe_vocabularyArguments",
"properties": {}
}{
"type": "object",
"title": "describe_vocabularyDictOutput",
"additionalProperties": true
}{
"title": "List Valid Filter Values",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}Prompts
0 advertised
Resources
0 advertised
30-day availability
Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.
- Successful checks
- 1 of 1 (100%)
- Average latency
- 1299 ms
- 95th percentile latency
- 1299 ms
Maintenance history
Public check and source-refresh events. Editorial and ownership records remain private.
- · probe · passed · 1299 ms · metadata changed · 11 tool(s), 0 resource(s), 0 resource template(s), 0 prompt(s)
Connect from your client
Each snippet registers the same endpoint; pick the client you use.
Claude Code
claude mcp add --transport http georgia-homeroom-mcp https://mcp.georgiahomeroom.org/mcpCodex
codex mcp add georgia-homeroom-mcp --url https://mcp.georgiahomeroom.org/mcpCursor
{
"mcpServers": {
"georgia-homeroom-mcp": {
"url": "https://mcp.georgiahomeroom.org/mcp"
}
}
}Cline
{
"mcpServers": {
"georgia-homeroom-mcp": {
"type": "streamableHttp",
"url": "https://mcp.georgiahomeroom.org/mcp",
"disabled": false
}
}
}VS Code
{
"servers": {
"georgia-homeroom-mcp": {
"type": "http",
"url": "https://mcp.georgiahomeroom.org/mcp"
}
}
}Gemini CLI
gemini mcp add --transport http georgia-homeroom-mcp https://mcp.georgiahomeroom.org/mcpClaude Desktop
{
"mcpServers": {
"georgia-homeroom-mcp": {
"url": "https://mcp.georgiahomeroom.org/mcp"
}
}
}Windsurf
{
"mcpServers": {
"georgia-homeroom-mcp": {
"serverUrl": "https://mcp.georgiahomeroom.org/mcp"
}
}
}Let your agent find its tools
Find servers like Georgia Homeroom MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.
Other documentation and reference servers
Do you run Georgia Homeroom MCP?
Prove ownership with a DNS record, a well-known file, or your Official MCP Registry entry, and your edits publish immediately. Proofs are re-checked weekly; admins can still hide or remove a listing.