## Tool: `search_course_standards`

> [!WARNING]
> **Developer Preview:** Available as part of the [Google Workspace Developer Preview Program](https://developers.google.com/workspace/preview), which grants early access to certain features.

Searches academic learning standards in a course to tag onto coursework or rubrics. Requires the course to have learning standards configured by the teacher.

- Specific standards: Search with exact code (e.g. "HS-LS1-1") or specific keywords (includeGroupingStandards=false).
- Categories: Set includeGroupingStandards=true with a broad topic word to find parent categories, then pass the category ID into learningStandardIds to narrow results.

The following code sample shows how to use `curl` to call the `search_course_standards` MCP tool.

| Curl Request |
|---|
| ```bash curl --location 'https://classroommcp.googleapis.com/mcp/v1' \ --header 'Authorization: Bearer YOUR_ACCESS_TOKEN' \ --header 'content-type: application/json' \ --header 'accept: application/json, text/event-stream' \ --data '{ "method": "tools/call", "params": { "name": "search_course_standards", "arguments": { // Provide these details according to the MCP tool specification. } }, "jsonrpc": "2.0", "id": 1 }' ``` |

## Input Schema

Request to search in the pre-selected course-level learning standard trees.

### SearchCourseStandardsRequest

| JSON representation |
|---|
| ``` { "courseId": string, "learningStandardIds": [ string ], "query": string, "includeGroupingStandards": boolean } ``` |

| Fields ||
|---|---|
| `courseId` | `string` Required. Identifier of the course. |
| `learningStandardIds[]` | `string` Optional. Restricts search to these category standards and their descendants. Pass id values from a prior call with `includeGroupingStandards` = true (not `standardCode`). If empty, searches all standards in the course. |
| `query` | `string` Required. Case-insensitive search terms; results must contain ALL space-separated words in their code or statement. - When `includeGroupingStandards` = false: pass an exact standard code (e.g. "HS-LS1-1") or 2-3 specific keywords (e.g. "area triangles"). - When `includeGroupingStandards` = true: pass 1-2 broad domain words (e.g. "geometry") matching category titles. |
| `includeGroupingStandards` | `boolean` Optional. If true, returns category headers (not taggable to coursework) whose ids narrow follow-up searches. If false (default), returns standards that can be tagged on coursework. |

## Output Schema

Response containing learning standards.

### SearchCourseStandardsResponse

| JSON representation |
|---|
| ``` { "learningStandards": [ { object (`https://developers.google.com/workspace/classroom/reference/mcp/tools_list/get_course_work#Output.Schema.LearningGoal`) } ] } ``` |

| Fields ||
|---|---|
| `learningStandards[]` | ``object (`https://developers.google.com/workspace/classroom/reference/mcp/tools_list/get_course_work#Output.Schema.LearningGoal`)`` The list of matching standards. |

### LearningGoal

| JSON representation |
|---|
| ``` { "id": string, "type": enum (`https://developers.google.com/workspace/classroom/reference/mcp/tools_list/get_course_work#Output.Schema.Type_1`), "standardCode": string, "title": string, "documentTitle": string } ``` |

| Fields ||
|---|---|
| `id` | `string` Output only. ID of the learning goal. To attach a standard, use an `id` from search_course_standards (not `standardCode`). |
| `type` | ``enum (`https://developers.google.com/workspace/classroom/reference/mcp/tools_list/get_course_work#Output.Schema.Type_1`)`` Output only. The type of learning goal. |
| `standardCode` | `string` Output only. Standard code (e.g. "NY-2.NBT.4"). Only populated for standards. |
| `title` | `string` Output only. Statement description for standards, or human-readable title for skills. |
| `documentTitle` | `string` Output only. Curriculum document name. Only populated for standards. |

### Type

The type of learning goal.

| Enums ||
|---|---|
| `TYPE_UNSPECIFIED` | Unspecified learning goal type. |
| `STANDARD` | A learning standard from an academic curriculum. |
| `SKILL` | A skill representing an educational concept or competency. Only a teacher can add or remove skills, in Classroom. |

### Tool Annotations


[Tool annotations](https://modelcontextprotocol.io/specification/latest/schema#toolannotations) are sent to MCP clients to describe the basic risk of a given tool. Most clients treat these hints as untrusted, but they can be used to decide when a confirmation prompt might be sent to a user.


Along with the title string, the following boolean hints are defined as follows:

- `readOnlyHint`: If true, the tool doesn't modify its environment. Default: false.
- `destructiveHint`: If true, then the tool can perform destructive actions. If false, then the tool can only perform additive actions. Default: true.
- `idempotentHint`: If true, then calling the tool repeatedly with the same arguments will have no additional effect on its environment. Default: false.
- `openWorldHint`: If true, then the tool can interact with an 'open world' of external entities. If false, then the tool can only interact with internal entities. For example, a web search tool would be open world, while a memory tool would not be open world.

Destructive Hint: ❌ \| Idempotent Hint: ✅ \| Read Only Hint: ✅ \| Open World Hint: ❌

## Authorization Scopes

Requires one of the following OAuth scopes:

- `https://www.googleapis.com/auth/classroom.courses`
- `https://www.googleapis.com/auth/classroom.courses.readonly`