what can you call from the attribute node?
Currently you can get:

density When used on a domain object, this is gives a scalar defining the density of any smoke inside the domain. All three outputs are the same.

flame When used on a domain object, this is gives a scalar defining the density of any fire inside the domain. All three outputs are the same.

color When used on a domain object, this is gives the color of the smoke. The color and vector outputs are the same. The fac output is an average of the channels.

N This gives the normals of the object. You can also get this info from the normal output of a geometry node.

Ng This gives the true normals of the object. You can also get this info from the true normal output of a geometry node.

pointiness This gives a scalar representing the amount of curvature of the object's surface based on it's normals. You can also get this info from the pointiness output of the a geometry node.

uv This gives the UV coordinates of the active UV map (the map with the camera icon active). Same as the UV output of the texture coordinate node.

generated This gives the generated coordinates of the object. Same as the Generated output of the texture coordinate node.

tangent This gives the tangent coordinates using the object's active UV map. Same as the Tangent output of a tangent node with direction set to UV map.

name of uv map
This allows you to get the UV coordinates stored in a specific UV map belonging to the object with the material. You usually want to use the vector output, though the color output is the same. The Fac output gives an average of the channels.


Note that as of 2.71 there is a dedicated UV map node which makes this obsolete.

name of vertex color set
This gives the vertex colors stored in the named vertex color datablock. Again the color and vector outputs are the same, and the Fac output is an average.

In the case of a vertex color datablock and a UV map with the same name, the UV map will be used by the attribute node.

There are actually quite a few more in the code, the ones listed above are just the ones which appear to work as of 2.74 930bf58 (latest master at the time of writing).
For a complete list, see line 192 of /intern/cycles/render/attribute.cpp:
I put //no output next to the ones which appeared to do nothing.
switch(std) {
    case ATTR_STD_VERTEX_NORMAL:
        return &quot;N&quot;;
    case ATTR_STD_FACE_NORMAL:
        return &quot;Ng&quot;;
    case ATTR_STD_UV:
        return &quot;uv&quot;;
    case ATTR_STD_GENERATED:
        return &quot;generated&quot;;
    case ATTR_STD_GENERATED_TRANSFORM:
        return &quot;generated_transform&quot;;   //no output
    case ATTR_STD_UV_TANGENT:
        return &quot;tangent&quot;;
    case ATTR_STD_UV_TANGENT_SIGN:
        return &quot;tangent_sign&quot;;          //no output
    case ATTR_STD_VERTEX_COLOR:
        return &quot;vertex_color&quot;;
    case ATTR_STD_POSITION_UNDEFORMED:
        return &quot;undeformed&quot;;            //no output
    case ATTR_STD_POSITION_UNDISPLACED:
        return &quot;undisplaced&quot;;           //no output
    case ATTR_STD_MOTION_VERTEX_POSITION:
        return &quot;motion_P&quot;;              //no output
    case ATTR_STD_MOTION_VERTEX_NORMAL:
        return &quot;motion_N&quot;;              //no output
    case ATTR_STD_PARTICLE:
        return &quot;particle&quot;;              //no output
    case ATTR_STD_CURVE_INTERCEPT:
        return &quot;curve_intercept&quot;;       //no output
    case ATTR_STD_CURVE_RANDOM:
        return &quot;curve_random&quot;;
    case ATTR_STD_PTEX_FACE_ID:
        return &quot;ptex_face_id&quot;;          //no output
    case ATTR_STD_PTEX_UV:
        return &quot;ptex_uv&quot;;               //no output
    case ATTR_STD_VOLUME_DENSITY:
        return &quot;density&quot;;
    case ATTR_STD_VOLUME_COLOR:
        return &quot;color&quot;;
    case ATTR_STD_VOLUME_FLAME:
        return &quot;flame&quot;;
    case ATTR_STD_VOLUME_HEAT:
        return &quot;heat&quot;;                  //no output
    case ATTR_STD_VOLUME_TEMPERATURE:
        return &quot;temperature&quot;;
    case ATTR_STD_VOLUME_VELOCITY:
        return &quot;velocity&quot;;              //no output
    case ATTR_STD_POINTINESS:
        return &quot;pointiness&quot;;
    case ATTR_STD_RANDOM_PER_ISLAND:
        return &quot;random_per_island&quot;;
    case ATTR_STD_NOT_FOUND:
    case ATTR_STD_NONE:
    case ATTR_STD_NUM:
        return &quot;&quot;;
}

Note that for the most part the attribute node seems to be used as a sort of &quot;testing node&quot; for inputs which aren't yet available in other nodes[citation needed]. I suspect old attribute names are not removed when they do get added to another node (e.g. pointiness) as this would break backwards compatibility.
At any rate, this would at least begin to explain why there is little to no documentation about this node.