We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/tbrennem-source/sf-permits-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server
{% if timeline %}
<div class="inspection-timeline" style="margin-top: var(--space-3, 12px); padding-top: var(--space-3, 12px); border-top: 1px solid var(--glass-border, rgba(255,255,255,0.06));">
<div class="data-row" style="padding: 0 0 var(--space-2, 8px);">
<span class="data-row__label" style="font-family: var(--mono, monospace); font-size: var(--text-xs, 0.7rem); text-transform: uppercase; letter-spacing: 0.06em; color: var(--text-secondary, rgba(255,255,255,0.55));">Inspection Progress</span>
<span class="data-row__value" style="font-family: var(--mono, monospace); font-size: var(--text-xs, 0.7rem); color: var(--text-tertiary, rgba(255,255,255,0.30));">{{ timeline.progress_pct }}% · {{ timeline.total_inspections }} inspections</span>
</div>
{# Progress bar #}
<div class="progress-track" style="margin-bottom: var(--space-3, 12px);">
<div class="progress-fill" style="width: {{ timeline.progress_pct }}%;"></div>
</div>
{# Sequence steps #}
<div style="display: flex; flex-wrap: wrap; gap: 4px; font-family: var(--mono, monospace); font-size: var(--text-xs, 0.7rem);">
{% for step in timeline.sequence %}
{% if step in timeline.completed_types %}
<span class="status-text--green" title="Passed">✓ {{ step | truncate(12, True, '..') }}</span>
{% elif step == timeline.suggested_next %}
<span style="color: var(--accent, #5eead4); font-weight: 500;" title="Suggested next">▶ {{ step | truncate(12, True, '..') }}</span>
{% else %}
<span style="color: var(--text-tertiary, rgba(255,255,255,0.30));">○ {{ step | truncate(12, True, '..') }}</span>
{% endif %}
{% if not loop.last %}<span style="color: var(--glass-border, rgba(255,255,255,0.06));">→</span>{% endif %}
{% endfor %}
</div>
{% if timeline.suggested_next %}
<div class="risk-flag risk-flag--low" style="margin-top: var(--space-2, 8px);">
<span class="risk-flag__dot"></span>
<span class="risk-flag__text">Next: <strong style="color: var(--text-primary, rgba(255,255,255,0.92));">{{ timeline.suggested_next }}</strong></span>
</div>
{% endif %}
{% if timeline.failed_needing_reinspection %}
<div style="margin-top: var(--space-2, 8px);">
{% for fail in timeline.failed_needing_reinspection %}
<div class="risk-flag risk-flag--high">
<span class="risk-flag__dot"></span>
<span class="risk-flag__text">{{ fail.type }} failed ({{ fail.date }}) — needs re-inspection</span>
</div>
{% endfor %}
</div>
{% endif %}
</div>
{% endif %}