Skip to main content
Glama

get_project_context

Initializes any Symbols project task by locating symbols.json, classifying the environment, and returning project details and next-step guidance for the agent.

Instructions

Read the current Symbols project context — START HERE for any Symbols task.

Walks up from cwd (or the MCP process's working directory) looking for symbols.json, parses it, classifies the environment from filesystem signals, and returns a single JSON payload with everything an agent needs to begin work.

Returns:

  • owner, key, dir, bundler, sharedLibraries, brender — from symbols.json

  • project_root — absolute path of the project root

  • symbols_dir — absolute path of the symbols/ source dir (or null)

  • env_typelocal | cdn | json_runtime | remote_server | unknown

  • env_evidence — the filesystem signals that produced the classification

  • env_guidance — one-line guidance for that env type

  • token_present — whether SYMBOLS_TOKEN env var or ~/.smblsrc token exists

  • api_base — the Symbols API base URL (defaults to https://api.symbols.app)

  • next_step — what the agent should do next (ask user / log in / proceed)

ALWAYS call this first for any Symbols-project task. It replaces the older detect_environment tool (which required the caller to pre-compute file flags).

Use this BEFORE calling any auth-required tool (save_to_project, publish, push, get_project) — combine with token_present to know whether to prompt for login.

Never hardcode owner/key/credentials. If next_step says "ask the user", ASK.

Args: cwd: Directory to start searching from. Defaults to the MCP server's process cwd. Pass an absolute path when the agent's cwd differs from the project root.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
cwdNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It discloses that the tool walks up from cwd, parses symbols.json, classifies the environment from filesystem signals, and returns a payload. It also gives operational behavior like checking for token presence and instructing the agent to ask the user when next_step says so. However, it doesn't explicitly state whether the tool is read-only or has side effects, though 'Read' implies it.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with a main sentence, a section explaining return values in bullet points, and usage guidance in bold. It is somewhat long but every section adds value. Minor redundancy exists ('START HERE' and 'ALWAYS call this first' repeat similar guidance), but overall it is efficiently organized.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity and that an output schema exists, the description is complete. It enumerates all return fields with meanings, explains the environment classification, gives actionable next_step guidance, and covers authentication-related context. No important aspect of the tool's behavior is left undocumented.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema provides only a 'cwd' property with a default and no description (0% coverage). The description fully compensates by explaining the meaning of cwd, its default behavior (MCP server's cwd), and when to pass an absolute path. This is exactly the kind of semantic enrichment needed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool reads the current Symbols project context and is the starting point for any Symbols task. It names specific resources (symbols.json, filesystem signals) and explicitly distinguishes it from the sibling tool detect_environment, which it replaces.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit usage guidance: 'ALWAYS call this first' for any Symbols-project task, and instructs to use it before auth-required tools like save_to_project, publish, push, and get_project. It also names the alternative detect_environment and explains when to use this tool instead.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Install Server

Other Tools

Latest Blog Posts

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/symbo-ls/symbols-mcp'

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