# Create a default toolset

Gram uses your API as the starting point for the creation of your MCP server. A toolset will be generated with one tool for every API method (`GET`, `POST`, `PUT`, `DELETE`) in your API, or custom tools defined in Gram Functions. This will be the default toolset.

This toolset is created via an uploaded [source](/docs/mcp/reference/concepts/tool-sources) such as an OpenAPI document or Gram Function.

The default toolset will likely contain too many tools for an LLM to use effectively in production. Before launching the MCP server, [a custom toolset will be curated](/docs/mcp/build/toolsets/custom-toolsets) to contain only the tools that are relevant to the intended use case.

## Generating tools from sources

Gram converts sources into tool definitions that MCP clients can understand and use. This guide focuses on OpenAPI documents, but you can also create tools from [Gram Functions](/docs/mcp/reference/concepts/tool-sources#gram-functions) for custom logic.

### Using OpenAPI documents

Gram converts OpenAPI endpoints into tool definitions.

To upload an OpenAPI document:

- In the Gram dashboard, click **Toolsets** in the sidebar (under **Create**).
- Click **+ Add API**.

![Upload OpenAPI document](/assets/docs/gram/img/guides/build-mcp/uploading-openapi-document.png)

- Select the OpenAPI document to upload and add the API name.

![Validating tool definitions](/assets/docs/gram/img/guides/build-mcp/01-upload-openapi-document-done.png)

Gram will parse the uploaded OpenAPI document and generate [tool definitions](/docs/mcp/reference/concepts/tool-definitions) for each endpoint method.

## How it works

Gram does not make use of the entire OpenAPI document, therefore the document does not need to be 100% valid in order to successfully generate tool definitions.

In particular, Gram will pull out the URL paths, HTTP methods, request schemas, and operation descriptions.

Most OpenAPI documents, do not contain detailed, contextual descriptions. That's okay. Context can be added via [prompts](/docs/mcp/build/toolsets/test-toolsets) in Gram or added to the OpenAPI document with the [`x-gram` extension](/docs/mcp/reference/concepts/tool-sources#optimizing-openapi-documents) to help LLM agents understand and use your tools correctly.
