Skip to main content
Glama

@rephelper/mcp-server

MCP server for REP Helper — let AI agents manage real estate activities and properties for IRS REP (Real Estate Professional) qualification tracking.

Prerequisites

  • Node.js 20+download

  • REP Helper Elite accountrephelper.ai

  • API token — Create one in REP Helper → Settings → API Tokens

Related MCP server: Rentalot MCP Server

Quick Start

1. Create an API Token

In the REP Helper app, go to Settings → API Tokens → Create Token. Grant the permissions you need (e.g., activities read/create, properties read). Copy the token — it's shown only once.

2. Configure Your AI Client

Add the following to your client's MCP configuration:

Claude Desktop — Edit claude_desktop_config.json:

{
  "mcpServers": {
    "rephelper": {
      "command": "npx",
      "args": ["-y", "@rephelper/mcp-server"],
      "env": {
        "REPHELPER_API_TOKEN": "rh_live_your_token_here"
      }
    }
  }
}

Claude Code — Edit .claude/settings.json or use the /mcp command:

{
  "mcpServers": {
    "rephelper": {
      "command": "npx",
      "args": ["-y", "@rephelper/mcp-server"],
      "env": {
        "REPHELPER_API_TOKEN": "rh_live_your_token_here"
      }
    }
  }
}

Cursor — Edit .cursor/mcp.json:

{
  "mcpServers": {
    "rephelper": {
      "command": "npx",
      "args": ["-y", "@rephelper/mcp-server"],
      "env": {
        "REPHELPER_API_TOKEN": "rh_live_your_token_here"
      }
    }
  }
}

Gemini CLI — Edit ~/.gemini/settings.json:

{
  "mcpServers": {
    "rephelper": {
      "command": "npx",
      "args": ["-y", "@rephelper/mcp-server"],
      "env": {
        "REPHELPER_API_TOKEN": "rh_live_your_token_here"
      }
    }
  }
}

Windsurf — Edit .windsurf/mcp.json:

{
  "mcpServers": {
    "rephelper": {
      "command": "npx",
      "args": ["-y", "@rephelper/mcp-server"],
      "env": {
        "REPHELPER_API_TOKEN": "rh_live_your_token_here"
      }
    }
  }
}

3. Start Using It

Ask your AI assistant to manage your real estate activities:

"Log 2 hours of property management for 123 Main St today"

"Show me all my activities from last week"

"Add a new long-term rental property at 456 Oak Ave, Austin, TX 78701"

Available Tools

Activities

Tool

Description

list_activities

List activities with optional filters (property, date range, category)

get_activity

Get a single activity by ID

create_activity

Log a new activity with optional trips and evidence files

update_activity

Update an existing activity

delete_activity

Soft-delete an activity (recoverable for 72 hours)

Properties

Tool

Description

list_properties

List properties with optional type filter

get_property

Get a single property by ID

create_property

Add a new rental property

update_property

Update an existing property

delete_property

Soft-delete a property (recoverable for 72 hours)

Activity Categories

  • Management & Operations

  • Maintenance & Repairs

  • Development & Construction

  • Acquisition & Brokerage

  • Administrative & Compliance

Evidence Files

When creating or updating activities, you can attach evidence files from your local filesystem:

  • Supported formats: JPEG, PNG, WebP, PDF

  • Maximum 3 files per activity

  • Maximum 10MB per file

Example: "Log a maintenance activity and attach the receipt from /Users/me/Downloads/receipt.jpg"

Trips

Associate up to 3 trips with an activity. Trip travel time is automatically added to the activity duration.

Environment Variables

Variable

Required

Default

Description

REPHELPER_API_TOKEN

Yes

Your API token (rh_live_* format)

REPHELPER_API_URL

No

https://api.rephelper.ai

API base URL override

API Documentation

Interactive API docs are available at api.rephelper.ai/docs.

The OpenAPI spec is available at api.rephelper.ai/openapi.yaml.

Troubleshooting

"REPHELPER_API_TOKEN environment variable is required"

  • Make sure you added the env block to your MCP config with your token.

"Token is invalid or not found"

  • Double-check your token value. It should start with rh_live_.

  • The token may have been revoked — create a new one in REP Helper.

"Permission denied: Token lacks X permission"

  • Your token doesn't have the required permission. Edit the token in REP Helper → API Tokens to add it.

"API access requires an Elite subscription"

  • API tokens are available on the Elite plan. Upgrade at rephelper.ai.

"Rate limited: Too many requests"

  • Wait a moment and try again. Limits: 60 reads/min, 30 writes/min, 5 deletes/min.

License

MIT

Available Tools

10 tools
create_activityCreate ActivityA

Log a new real estate activity (hours entry). Records time spent on property management, maintenance, etc. for IRS REP qualification tracking. Optionally associate trips (travel time added to duration) and attach evidence files from the local filesystem.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYesActivity title/summary (e.g. 'Property inspection at 123 Main St')
categoryYesActivity category
startTimeYesStart time in ISO 8601 format (e.g. 2026-04-06T09:00:00Z)
endTimeYesEnd time in ISO 8601 format (e.g. 2026-04-06T11:00:00Z)
descriptionNoDetailed description of the activity
propertyIdNoID of the associated property
isMaterialParticipationNoWhether this counts toward material participation tests (default false)
isQualifyingNoWhether this counts toward REP qualifying hours (default false)
qualificationReasonNoReason for qualification
irsTestNoWhich IRS test this activity applies to (default NONE)
isDraftNoWhether this is a draft (default false)
durationMinutesNoOverride computed duration in minutes
teamMemberIdNoTeam member who performed the activity
tripIdsNoTrip IDs to associate (max 3). Travel time is added to activity duration.
evidenceFilesNoLocal file paths to attach as evidence (max 3; JPEG, PNG, WebP, or PDF; max 10MB each)

TDQS

A4/5.0
Behavior3/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 trip association adds travel time to duration and that files come from the local filesystem, but omits mutation side effects, validation behavior, draft vs. final persistence details, and error handling.

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

Conciseness5/5

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

Three sentences with zero waste: sentence 1 states the core action, sentence 2 provides domain context, and sentence 3 highlights critical optional behaviors (trip duration handling, file attachment). Information is front-loaded and every clause earns its place.

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

Completeness4/5

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

Given 100% schema coverage and 15 parameters, the description appropriately focuses on high-level domain context and special behaviors rather than enumerating parameters. It adequately covers the tool's purpose for a complex IRS compliance tracking operation, though it could explicitly state this is a persistent write operation.

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

Parameters4/5

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

While the schema has 100% description coverage (baseline 3), the description adds valuable domain context: 'IRS REP qualification tracking' explains the semantic purpose of isQualifying, isMaterialParticipation, and irsTest parameters collectively, and emphasizes the 'local filesystem' constraint for evidence files.

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 opens with the specific action 'Log a new real estate activity (hours entry)' and clearly identifies the domain purpose (IRS REP qualification tracking). It distinguishes from siblings by emphasizing creation/logging versus update, delete, or list operations.

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

Usage Guidelines3/5

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

The description implies usage context through domain-specific terms (IRS REP tracking) and optional features, but lacks explicit guidance on when to use create_activity versus update_activity, or prerequisites like requiring an existing propertyId.

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

create_propertyCreate PropertyB

Add a new rental property to the account. Properties can be SHORT_TERM (STR) or LONG_TERM (LTR) rentals.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesProperty name/label (e.g. 'Beach House' or '123 Main St')
typeYesProperty type: SHORT_TERM or LONG_TERM
addressYesProperty address
imageUrlNoURL to property image
acquiredDateNoDate property was acquired (ISO 8601)
placedInServiceDateNoDate property was placed in service (ISO 8601)

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description carries full disclosure burden. It mentions the property types (STR/LTR) but fails to describe mutation side effects, idempotency, error conditions (e.g., duplicate names), or what the tool returns upon success since no output schema exists.

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

Conciseness5/5

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

Two efficient sentences with zero waste. The first sentence front-loads the core action, while the second provides essential domain context about property types. Every word earns its place.

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

Completeness3/5

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

With 100% input schema coverage, the description doesn't need to document parameters further. However, lacking an output schema, the description should ideally mention the return value (e.g., created property ID) or success behavior, which it omits. Adequate but not comprehensive.

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

Parameters4/5

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

Schema coverage is 100%, establishing a baseline of 3. The description adds valuable domain context by explaining the STR/LTR distinction for the 'type' parameter. However, it doesn't elaborate on the nested address structure or date formats beyond what the schema already provides.

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

Purpose4/5

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

The description states a clear verb ('Add') and resource ('rental property'), and specifies scope ('to the account'). It distinguishes from siblings like update_property and delete_property by specifying 'new' and mentioning the account context, though it doesn't explicitly contrast with 'update_property' for existing properties.

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

Usage Guidelines2/5

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

No explicit guidance on when to use this tool versus alternatives (e.g., 'use update_property for existing properties'). No mention of prerequisites such as account requirements or uniqueness constraints on property names.

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

delete_activityDelete ActivityA
Destructive

Soft-delete an activity. The activity is hidden from queries but can be recovered within 72 hours via the REP Helper web app.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe activity ID to delete

TDQS

A4/5.0
Behavior4/5

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

Beyond the destructiveHint annotation, the description adds crucial behavioral context: the activity is hidden from queries (explaining the immediate effect) and recoverable within 72 hours via a specific web app (explaining the reversibility window). This clarifies the 'soft' nature of the deletion.

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

Conciseness5/5

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

Two sentences with zero waste. Front-loaded with the action ('Soft-delete an activity') followed by behavioral implications. Every word earns its place.

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

Completeness4/5

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

For a single-parameter destructive operation, the description adequately covers the soft-delete semantics and recovery mechanism. Minor gap: does not specify return value on success, though this is often implicit for delete operations.

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

Parameters3/5

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

With 100% schema description coverage ('The activity ID to delete'), the schema fully documents the single parameter. The description does not add parameter-specific semantics, meeting the baseline expectation when schema coverage is high.

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 uses specific verb 'Soft-delete' with resource 'activity', clearly distinguishing it from siblings like update_activity or get_activity. The soft-delete semantics differentiate it from potential hard-delete alternatives.

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

Usage Guidelines3/5

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

The description implies usage constraints through the 72-hour recovery window and REP Helper web app mention, but lacks explicit 'when to use vs alternatives' guidance comparing it to update_activity or distinguishing from permanent deletion scenarios.

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

delete_propertyDelete PropertyA
Destructive

Soft-delete a property. The property is hidden from queries but can be recovered within 72 hours via the REP Helper web app.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe property ID to delete

TDQS

A4.5/5.0
Behavior5/5

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

The annotation only indicates destructiveHint=true, but the description adds essential behavioral nuance: the deletion is 'soft' (recoverable), the property becomes hidden from queries, the specific 72-hour recovery window, and the external recovery tool required. This significantly enhances safety and operational understanding.

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

Conciseness5/5

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

Two sentences with zero waste. First sentence states the action (soft-delete), second sentence covers consequences and recovery. Information is front-loaded and appropriately sized for a single-parameter destructive operation.

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?

For a simple deletion tool with one parameter and no output schema, the description is complete. It covers the deletion semantics, visibility impact, recovery timeframe, and recovery method—sufficient context for safe invocation.

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

Parameters3/5

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

The input schema has 100% description coverage ('The property ID to delete'), so the baseline score is 3. The description does not add additional parameter semantics, but none are needed given the complete schema documentation.

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 uses a specific verb phrase ('Soft-delete a property') that clearly identifies the operation and resource. It distinguishes from sibling delete_activity by specifying 'property,' and adds crucial scope clarification by defining what 'soft-delete' means.

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

Usage Guidelines4/5

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

While it doesn't explicitly map alternatives (e.g., 'use update_property to modify instead'), it provides critical operational context: the 72-hour recovery window and the recovery mechanism (REP Helper web app). This gives clear guidance on the consequences of invocation.

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

get_activityGet ActivityA
Read-only

Get a single activity (hours entry) by its ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe activity ID

TDQS

A4/5.0
Behavior4/5

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

Annotations declare readOnlyHint=true; description adds valuable domain context that 'activity' specifically refers to 'hours entry'. No contradictions with annotations.

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

Conciseness5/5

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

Single sentence with zero waste. Front-loaded with verb 'Get'. Every word earns its place including the domain clarification in parentheses.

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

Completeness4/5

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

Complete for a simple lookup tool with 100% schema coverage and annotations present. Mentions return type conceptually ('single activity') despite lack of output schema.

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

Parameters3/5

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

Schema coverage is 100% ('The activity ID'), establishing baseline 3. Description references 'by its ID' without adding format constraints, validation rules, or examples beyond the schema definition.

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?

Specific verb 'Get' with clear resource 'activity (hours entry)' and scope 'single...by its ID'. The parenthetical 'hours entry' clarifies domain terminology, and 'single' effectively distinguishes from sibling list_activities.

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

Usage Guidelines3/5

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

Implies usage context through 'by its ID' (suggesting direct lookup vs. search), but lacks explicit when/when-not guidance contrasting with list_activities or prerequisites for obtaining the ID.

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

get_propertyGet PropertyB
Read-only

Get a single rental property by its ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe property ID

TDQS

B3.4/5.0
Behavior3/5

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

The readOnlyHint annotation confirms this is a safe read operation, which the description does not contradict. However, the description adds no behavioral context beyond what the schema and annotations provide (e.g., what happens if the ID is invalid, what fields are returned, or caching behavior).

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

Conciseness5/5

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

The description is a single, efficient sentence with no filler words. It is front-loaded with the action ('Get') and immediately qualifies the scope ('single rental property by its ID'), making it easy to parse.

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

Completeness4/5

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

Given the tool's low complexity (one simple string parameter, no nested objects) and the presence of readOnly annotations, the description is sufficient for invocation. However, the lack of an output schema means the description could have clarified the return structure (e.g., 'returns property details').

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

Parameters3/5

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

With 100% schema description coverage ('The property ID'), the schema fully documents the parameter. The description mentions 'by its ID' but adds no additional semantic information (format constraints, where to find the ID, examples) beyond the schema baseline.

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

Purpose4/5

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

The description clearly states the tool retrieves a 'single rental property' using its ID, distinguishing it from the sibling list_properties tool (which handles multiple items). However, it does not explicitly name sibling alternatives like list_properties or differentiate from get_activity.

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

Usage Guidelines2/5

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

The description provides no explicit guidance on when to use this tool versus alternatives (e.g., 'use list_properties if you don't have an ID'), nor does it mention prerequisites or error conditions like 'property not found'.

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

list_activitiesList ActivitiesA
Read-only

List real estate activities (hours entries) for the account. Returns activities ordered by start time (newest first). Filter by property, date range, or category.

ParametersJSON Schema
NameRequiredDescriptionDefault
propertyIdNoFilter by property ID
startDateNoFilter activities on or after this date (ISO 8601, e.g. 2026-01-01)
endDateNoFilter activities on or before this date (ISO 8601, e.g. 2026-12-31)
categoryNoFilter by activity category
limitNoMax results (default 50, max 100)

TDQS

A3.5/5.0
Behavior3/5

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

Annotations declare readOnlyHint=true, so safety is covered. Description adds valuable ordering behavior ('ordered by start time (newest first)') not found in annotations or schema. However, it omits details about return structure, default behavior when no filters applied, or pagination beyond the limit parameter.

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

Conciseness5/5

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

Three sentences, front-loaded with purpose. Every sentence earns its place: defines resource, specifies ordering behavior, and summarizes filtering capabilities. No redundant or wasted text.

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

Completeness3/5

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

Input schema is fully covered (100%), but lacking output schema means description should compensate for return value structure. It minimally states 'Returns activities' without field details. Adequate for simple list operation but gaps remain regarding response format and explicit sibling differentiation.

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

Parameters3/5

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

With 100% schema description coverage, baseline is met. Description lists filterable fields but doesn't add semantic depth beyond the schema (e.g., no explanation of parameter interplay or that all parameters are optional).

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

Purpose4/5

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

States specific verb 'List' and resource 'real estate activities (hours entries)' clearly. Distinguishes from property-related siblings by specifying 'activities', though it doesn't explicitly contrast with 'get_activity' (single item retrieval vs. list).

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

Usage Guidelines3/5

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

Implies usage through filter descriptions ('Filter by property, date range, or category'), but lacks explicit guidance on when to choose this over 'get_activity' or whether filters are optional. No mention of prerequisites or when not to use.

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

list_propertiesList PropertiesA
Read-only

List rental properties for the account. Optionally filter by property type (SHORT_TERM or LONG_TERM).

ParametersJSON Schema
NameRequiredDescriptionDefault
typeNoFilter by property type
limitNoMax results (default 50, max 100)

TDQS

A3.6/5.0
Behavior3/5

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

Annotations declare readOnlyHint=true, so the safety profile is covered. Description adds 'for the account' scoping and confirms optional filtering behavior. Does not disclose default behavior when no filters are applied (returns all?), pagination cursor logic, or response structure given the lack of output schema.

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

Conciseness5/5

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

Two sentences totaling 12 words. First states core purpose, second states optional capability. Zero redundancy, front-loaded with action, no wasted phrases.

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

Completeness4/5

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

Adequate for a simple list operation with 2 optional parameters and read-only annotations. Missing explicit description of return values (list vs object), but the verb 'List' strongly implies a collection return. Sufficient without output schema, though mention of default unfiltered behavior would improve it.

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

Parameters3/5

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

Schema has 100% description coverage with complete enum documentation. Description reinforces the optional nature of filtering and repeats the enum values (SHORT_TERM/LONG_TERM), adding marginal semantic value beyond the structured schema. Baseline 3 appropriate given schema carries the load.

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

Purpose4/5

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

Clear verb 'List' and resource 'rental properties' with account scoping. Distinguishes from sibling 'get_property' implicitly through pluralization (list vs get), but does not explicitly differentiate when to use one versus the other.

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

Usage Guidelines3/5

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

Implies usage through 'Optionally filter by property type,' indicating when to use the type parameter. However, lacks explicit guidance on when to use list_properties versus get_property for single-property retrieval, and no mention of pagination strategy with the limit parameter.

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

update_activityUpdate ActivityA

Update an existing activity. Only include fields you want to change. Can add/replace trips, attach new evidence files, or remove existing evidence.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe activity ID to update
titleNoNew title
categoryNoNew category
startTimeNoNew start time (ISO 8601)
endTimeNoNew end time (ISO 8601)
descriptionNoNew description
propertyIdNoNew property ID (or empty string to unlink)
isMaterialParticipationNoUpdate material participation flag
isQualifyingNoUpdate qualifying hours flag
qualificationReasonNoUpdate qualification reason
irsTestNoUpdate IRS test
isDraftNoUpdate draft status
durationMinutesNoOverride duration in minutes
tripIdsNoReplace trip list (max 3). Travel time is recalculated.
removeEvidenceIdsNoEvidence IDs to unlink from this activity
evidenceFilesNoNew local file paths to attach as evidence (max 3 total per activity)

TDQS

A3.6/5.0
Behavior3/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 explains the partial update behavior well but fails to disclose safety characteristics (is it destructive? atomic?), return values, or constraints like the max 3 trips/files limit mentioned in the schema. The 'remove existing evidence' hint suggests destructive capability but doesn't classify it.

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

Conciseness5/5

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

Three sentences with zero waste: purpose statement first, update semantics second, specific capabilities third. Every word earns its place. Front-loaded structure makes it immediately scannable.

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

Completeness3/5

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

For a complex 16-parameter mutation tool with file handling and relationships, the description covers the essential mechanics but is incomplete regarding return values (no output schema exists) and error conditions. The 100% schema coverage compensates somewhat, but behavioral gaps remain given the lack of annotations.

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

Parameters4/5

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

Despite 100% schema description coverage (baseline 3), the description adds significant value by explaining the partial update semantic ('Only include fields you want to change') that applies to all optional parameters. It also usefully aggregates related operations (evidence attachment/removal) that are spread across multiple parameters.

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

Purpose4/5

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

The description clearly states the verb (update) and resource (activity), specifying it works on 'existing' activities which distinguishes it from create_activity. It lists specific capabilities (trips, evidence files) that clarify the scope beyond a generic update.

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

Usage Guidelines3/5

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

The description provides crucial guidance on partial updates ('Only include fields you want to change'), indicating PATCH-like semantics. However, it lacks explicit guidance on when to use this versus create_activity or delete_activity, and doesn't mention prerequisites like requiring a valid activity ID.

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

update_propertyUpdate PropertyA

Update an existing property. Only include fields you want to change.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe property ID to update
nameNoNew property name
typeNoNew property type
addressNoNew address (replaces entire address)
imageUrlNoNew image URL
isActiveNoSet active/inactive status
acquiredDateNoNew acquired date (ISO 8601)
placedInServiceDateNoNew placed-in-service date (ISO 8601)
soldDateNoDate property was sold (ISO 8601)

TDQS

A3.5/5.0
Behavior3/5

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

Discloses critical partial-update behavior (fields omitted are not changed), which is essential given no annotations. However, missing other key behavioral details: error handling (what happens if ID not found?), side effects, validation rules for dates, or whether the operation is atomic.

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

Conciseness5/5

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

Extremely concise at two sentences with zero redundancy. Front-loaded with the core purpose ('Update an existing property'), followed immediately by critical usage instruction. Every word earns its place.

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

Completeness3/5

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

Minimum viable for a 9-parameter update operation with nested objects. The partial-update disclosure covers the primary risk, but given the complexity (multiple date fields, address replacement semantics, active status), the description lacks business logic context that would help an agent understand side effects of specific field changes.

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

Parameters3/5

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

Input schema has 100% coverage with clear field descriptions, establishing a baseline of 3. The description adds valuable partial-update semantics applicable to parameters, but does not explain parameter relationships (e.g., date precedence rules) or provide examples beyond what the schema already documents.

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

Purpose4/5

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

States specific action ('Update') and resource ('property'), and distinguishes from create/delete/get siblings by specifying 'existing.' However, it does not differentiate from update_activity or explain what constitutes a 'property' in this domain.

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

Usage Guidelines3/5

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

Provides implicit guidance through 'Only include fields you want to change,' indicating partial/PATCH-like update semantics. However, it lacks explicit when-to-use guidance, prerequisites (e.g., property must exist), or comparison to sibling update_activity.

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

TDQS

A3.9/5.0
Disambiguation5/5

Tools are perfectly partitioned by resource (activity vs property) and action (create/get/list/update/delete). No overlap exists between operations, and descriptions clearly distinguish time-entry logging from property management.

Naming Consistency5/5

Flawless adherence to verb_noun snake_case convention throughout. The same five verbs (create, get, list, update, delete) are applied consistently across both resource types, making the API surface instantly predictable.

Tool Count5/5

Ten tools represents an ideal scope for this domain: full CRUD (5 operations) for two core resources (properties and activities). No bloat, no missing essential operations, tightly focused on IRS REP tracking workflows.

Completeness4/5

Excellent lifecycle coverage with soft-delete recovery and filtering. Minor gap: no aggregation or reporting tools (e.g., annual hours summary by property) which would be essential for actual tax filing workflows, though the raw data management is complete.

Maintenance

ActivityInactive
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    The RealVest MCP (Model Context Protocol) server enables AI assistants like Claude to use all 31 of our professional calculators and access our educational resources directly in your conversations. From basic affordability to advanced portfolio analysis, Monte Carlo simulations, and tax optimization
    26
    7
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    MCP server for the Rentalot API. Manage rental properties, contacts, showings, conversations, and more from any AI assistant.
    14
    1
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    MCP server for Stessa rental-property accounting platform, enabling AI agents to query properties, portfolios, banking, documents, and tenancies via natural language.
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables AI assistants to operate property management systems via natural language, covering repair orders, owner info, payments, notices, and inspections. Features a full agentic workflow with human-in-the-loop and observability.
    MIT

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/rephelper-ai/mcp-server'

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